java视频播放器几种
java视频播放器源代码
import java.awt.*;import java.io.*;import java.util.*;import javax.media.*;import javax.media.format.*;import javax.swing.*;public class VideoPlayer implements ControllerListener {Vector audioCapDevList = null;Vector videoCapDevList = null;CaptureDeviceInfo audioCapDevInfo = null;CaptureDeviceInfo videoCapDevInfo = null;MediaLocator audioCapDevLoc = null;MediaLocator videoCapDevLoc = null;Player audioPlayer;Player videoPlayer;public void initAudioCapDevLoc() {//这里可以填写其它的音频编码格式,具体请看AudioFormat类audioCapDevList = CaptureDeviceManager.getDeviceList(new AudioFormat(AudioFormat.LINEAR));if ((audioCapDevList.size() > 0)) {//或许有几个CaptureDevice,这里取第一个audioCapDevInfo = (CaptureDeviceInfo) audioCapDevList.elementAt(0);audioCapDevLoc = audioCapDevInfo.getLocator();} else {System.out.println("找不到音频采集设备");System.exit(0);}}public void initVideoCapDevLoc() {//这里可以填写其它的编码视频格式,具体请看VideoFormat类videoCapDevList = CaptureDeviceManager.getDeviceList(new VideoFormat(VideoFormat.YUV));if ((videoCapDevList.size() > 0)) {//或许有几个CaptureDevice,这里取第一个videoCapDevInfo = (CaptureDeviceInfo)videoCapDevList.elementAt(0);videoCapDevLoc = videoCapDevInfo.getLocator();} else {System.out.println("找不到视频采集设备");System.exit(0);}}public void initAudioPlayer() {try {audioPlayer = Manager.createPlayer(audioCapDevLoc);} catch (NoPlayerException ex) {} catch (IOException ex) {}//增加一个侦听器,侦听player状态的改变audioPlayer.addControllerListener(this);audioPlayer.realize();}public void initVideoPlayer() {try {videoPlayer = Manager.createPlayer(videoCapDevLoc);} catch (NoPlayerException ex) {} catch (IOException ex) {}//增加一个侦听器,侦听player状态的改变videoPlayer.addControllerListener(this);videoPlayer.realize();}public void stopAndClosePlayer(){audioPlayer.stop();audioPlayer.close();videoPlayer.stop();videoPlayer.close();}public synchronized void controllerUpdate(ControllerEvent ce) { Player p = (Player) ce.getSourceController();JFrame jFrame = new JFrame();Component com;if (p == null) {return;}//如果player的状态变为Realizedif (ce instanceof RealizeCompleteEvent) {if ((com = p.getControlPanelComponent()) != null) {jFrame.add(com, BorderLayout.SOUTH);}if ((com = p.getVisualComponent()) != null) {jFrame.add(com, BorderLayout.NORTH);}jFrame.setVisible(true);jFrame.pack();jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); p.start();}}public static void main(String args[]) {V ideoPlayer cap = new VideoPlayer();cap.initAudioCapDevLoc();cap.initVideoCapDevLoc();cap.initAudioPlayer();cap.initVideoPlayer();try {Thread.currentThread().sleep(20000);//20秒后停止并关闭播放器 } catch (InterruptedException ex) {}cap.stopAndClosePlayer();}}。
javaplayer总结
javaplayer总结JavaPlayer 是一个流行的 Java 视频播放器,它支持多种视频格式和播放模式,可以让用户在 Java 应用程序中方便地播放视频。
下面是 JavaPlayer 总结:1. 评分最高的内容:JavaPlayer 的评分最高的内容是其优秀的性能和易用性。
JavaPlayer 可以播放各种类型的视频文件,包括 MKV、AVI、MOV、MP4 等,而且它具有简单易用的 API,使得开发人员可以轻松地集成视频播放功能到他们的 Java 应用程序中。
2. 拓展:JavaPlayer 还可以进行一些有趣的拓展。
例如,开发人员可以使用 JavaPlayer 的 API 创建自己的视频播放器,支持自定义视频格式、字幕、音频、进度条等。
此外,JavaPlayer 还支持在视频中嵌入广告,为开发人员提供更多的商业机会。
3. 支持多种格式:JavaPlayer 支持多种视频格式,包括 MKV、AVI、MOV、MP4 等。
这是因为 JavaPlayer 使用了开源的 FFmpeg 库来处理视频文件,允许开发人员轻松地将视频文件格式转换为 JavaPlayer 支持的格式。
4. 播放模式:JavaPlayer 支持多种播放模式,例如自动播放、暂停、快进、快退、音量调节等。
此外,JavaPlayer 还支持全屏模式和缩放模式,使得用户可以更加舒适地观看视频。
5. 性能:JavaPlayer 的性能非常好,因为它使用了优化的视频编解码器和解码器。
此外,JavaPlayer 还支持多线程处理,使得它可以同时处理多个视频流,提高视频播放的流畅度。
6. 支持 Web 浏览器:JavaPlayer 还可以在 Web 浏览器中运行,允许用户通过互联网观看视频。
这是因为 JavaPlayer 是一个跨平台的应用程序,可以在不同的操作系统和浏览器中运行。
JavaPlayer 是一个非常流行的 Java 视频播放器,它提供了许多有用的功能和易用性,使得开发人员可以轻松地集成视频播放功能到他们的 Java 应用程序中。
用JMF构建媒体播放器(1)
try { //准备一个要播放的视频文件的URL url = new URL("file:/d:/2.mpg"); } catch (MalformedURLException e) { e.printStackTrace(); } try { //通过调用Manager的createPlayer方法来创建一个Player的对象 //这个对象是媒体播放的核心控制对象 player = Manager.createPlayer(url); } catch (NoPlayerException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); }
JMF(Java Media Frame ,rk)即Java媒体框架, 是sun公司推出的一个应用程序接口,可 以实现音频、视频信号的采集、存储、 和传输,支持压缩的媒体流及存储媒体 的同步、控制、处理和播放。JBuilder x是 Borland公司推出的可视化Java语言编程工 具,它提供了一个功能强大的集成开发 环境,可以方便地创建各种Java应用程和 小应用程
实例代码:
package com.bird.jmf; import java.awt.BorderLayout; import ponent; import java.awt.Dimension; import java.awt.Frame; import java.awt.Panel; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import .MalformedURLException; import .URL; import javax.media.CannotRealizeException; import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.EndOfMediaEvent; import javax.media.Manager; import javax.media.MediaLocator; import javax.media.NoPlayerException; import javax.media.Player; import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import javax.media.Time;
5个免费Web视频及音频播放器
5个免费Web视频及音频播放器COMSHARP CMS写道"在线视频,在线音频越来越流行,即使你的网站成不了YouTube,也不妨在上面部署一些可以直接在线播放的视频,在Web上播放媒体,如今最可靠方案莫过于Flash。
本文介绍5个免费的,简单易用的,可以嵌入任意网页的 FLV视频与MP3音频播放器,它们都基于Flash技术(完整图文版)。
1. FlowplayerFlowplayer是一个开源(GPL3 许可)Web 视频播放器,可以将视频嵌入到你的网页。
2. JW FLV PlayerJW FLV Player是最流行,最灵活的 Web 媒体播放器,它可以播放 Flash 所支持的所有格式,包括 FLV, MP4, MP3, AAC, JPG, PNG 以及GIF。
还支持RTMP, HTTP 直播媒体流,支持多种播放列表格式。
还提供 JavaScript API。
3. Flash Video Player Plugin for WordPressFlash Video Player是一个 WordPress 插件,可以将视频快速嵌入你的 WordPress 博客,支持自定义皮肤,水印 Logo 等。
将该播放器放到WordPress 插件目录(wpcontent/plubins)并在系统管理中激活该插件即可使用。
详细资料...4. WP Audio PlayerWP Adudio Player是一个 WordPress 插件,可以直接在 Web 上播放 MP3 文件。
很容易使用和定制。
在非 WordPress 站点,该播放器也可以使用,这里有一个教程。
5. XSPF Web Music PlayerXSPF Web Music Player是一个基于 Flash 的 Web 程序,使用XSPF 播放列表格式播放 mp3 音频。
XSPF 是一个 XML 格式的播放列表格式,该程序是用 Actionscript 2 设计的。
ijkplayer基本使用 简书
ijkplayer基本使用简书(原创实用版)目录1.ijkplayer 简介2.ijkplayer 的基本使用方法3.在简书上使用 ijkplayer 的步骤正文【1.ijkplayer 简介】ijkplayer 是一款基于 Java 的开源视频播放器,其支持多种格式的视频文件播放,如 mp4、mkv、avi 等。
由于其开源特性,许多开发者将其集成到自己的应用程序中,以提供视频播放功能。
【2.ijkplayer 的基本使用方法】在使用 ijkplayer 时,需要先下载并导入其 SDK。
具体步骤如下:1.下载 ijkplayer SDK,可以通过其官网或 GitHub 仓库获取。
2.将下载的 SDK 导入到自己的 Java 项目中。
3.在项目中创建一个视频播放界面,并设置好视频播放控件的属性。
4.在代码中初始化 ijkplayer,并设置好相关参数,如视频文件路径、播放模式等。
5.调用 ijkplayer 的播放方法,开始播放视频。
【3.在简书上使用 ijkplayer 的步骤】由于简书是一个基于 Web 的写作平台,本身不支持本地程序的运行,因此需要通过一些第三方工具来实现在简书上使用 ijkplayer。
1.首先,你需要在你的本地机器上安装一个视频播放器,如 VLC、PotPlayer 等。
2.然后,下载并安装一个屏幕录像软件,如 OBS、屏幕录像专家等。
3.使用屏幕录像软件,将播放的视频录制下来。
4.将录制好的视频文件上传到你的简书文章中。
5.在简书文章中,使用 HTML 代码,嵌入一个视频播放器,如“<video>”标签,并设置好相关的属性。
6.调用浏览器的播放功能,观看视频。
第1页共1页。
javplayer用法
javplayer用法JavPlayer是一款用于播放和管理Jav(日本成人影片)的播放器软件。
它提供了一系列强大的功能和工具,方便用户浏览、组织和享受Jav 影片。
以下是JavPlayer的详细使用方法的介绍。
2. 导入Jav影片首次启动JavPlayer后,点击"文件"菜单中的"导入"选项。
在弹出的对话框中,选择Jav影片所在的文件夹,点击"确定"按钮。
JavPlayer会自动扫描并导入影片信息和封面。
3.浏览和导入影片后,可以通过影片列表进行浏览。
默认情况下,影片会按照导入时间进行排序。
用户可以点击列表头部的不同列进行排序,也可以使用框输入关键词进行。
通过右上角的筛选菜单可以按照不同的条件(如演员、片商、分类等)进行筛选。
4.播放影片在影片列表中选择一部影片,双击即可播放。
JavPlayer支持多种影片格式(如MP4、AVI、MKV等)的播放,并且可以自动加载相应的字幕文件。
在播放过程中,用户可以使用常见的播放控制按钮(如播放、暂停、快进、快退等)自由控制影片进度。
另外,JavPlayer还内置了一些快捷键(如空格键控制播放/暂停),方便用户进行操作。
5.影片信息和封面7.字幕设置对于带有字幕的影片,JavPlayer会自动加载相应的字幕文件。
用户可以在主界面的字幕区域中选择字幕文件,或者通过右键菜单中的"选择字幕"选项进行手动选择。
另外,用户还可以通过右键菜单中的"字幕设置"选项,自定义字幕的字体、颜色、大小等参数。
8.设置和偏好JavPlayer提供了一些设置选项,用户可以根据自己的喜好进行调整。
点击"工具"菜单中的"设置"选项,进入设置界面。
在设置界面中,用户可以选择影片信息的显示方式、调整字幕参数、设置播放器外观、设置默认影片文件夹等。
9.升级和更新以上是JavPlayer的基本使用方法的介绍。
java vlc 参数
java vlc 参数在Java中使用VLCJ库时,可以通过以下参数来配置VLC媒体播放器的行为:1.media:指定要播放的媒体文件的路径或URL。
2.width和height:指定播放器窗口的宽度和高度。
3.fullscreen:指定是否以全屏模式播放媒体。
4.autoplay:指定是否自动播放媒体。
5.loop:指定是否循环播放媒体。
6.volume:指定播放器的音量级别。
7.position:指定媒体播放的起始位置(以秒为单位)。
8.subtitle-file:指定要显示的字幕文件的路径。
9.audio-stereo-mode:指定音频的立体声模式。
10.其他VLC命令行参数:可以通过将其他VLC命令行参数传递给VLCJ来配置VLC的行为。
例如,可以使用--no-video-title-show参数来隐藏视频标题。
下面是一个使用VLCJ播放本地视频文件的示例代码:java复制代码importuk.co.caprica.vlcj.factory.MediaPlayerFactory;import uk.co.caprica.vlcj.player.base.MediaPlayer;importponent.EmbeddedMediaPlayerC omponent;import javax.swing.*;public class VLCPlayerExample {public static void main(String[] args) {// Create JFrame and set it as the application's main windowJFrame frame = new JFrame("VLCJ Example");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;frame.setSize(640, 480);// Create a media player component and add it to the frameEmbeddedMediaPlayerComponent mediaPlayerComponent = new EmbeddedMediaPlayerComponent();frame.setContentPane(mediaPlayerComponent);// Create a media player and set the media to be playedMediaPlayer mediaPlayer =mediaPlayerComponent.mediaPlayer();mediaPlayer.media().play("file:///path/to/your/video /file.mp4");// Display the frameframe.setVisible(true);}}在这个示例中,我们创建了一个JFrame窗口,并在其中添加了一个EmbeddedMediaPlayerComponent。
教你利用VC++和JAVA 设计视频播放器的详细步骤
利用VC++设计视频播放器一 需求分析制作一个视频播放器,能够播放多种格式的多媒体文件:CD 音乐曲目(.cda )、数字化波形声音(.WAV )、MIDI 文件(. mid, .rmi, .midi )、Windows Media 文件(. asf, .wm, .wma )、电影文件(. mpeg , . mpg , .mp3)、视频文件(.avi , . wmv )、音频文件(. wav , . snd , .au , .aif )等。
能够有用户自己选择文件,提供媒体播放控制:打开、播放、暂停、停止、全屏能控制播放音量的大小。
应用程序界面美观,使用方便,有完善的操控按钮或进度指示条等。
本课题对软硬件平台要求不高,操作系统可选择Windows2000/Window XP 。
在Visual C++ 6.0下用ActiveMovie 控件来实现。
本课程设计用例如图1所示,用户使用播放器,播放器完成媒体播放和音量调节两大功能。
<< use>> 用户图1 视频播放器UML 用例图二 对象分析由于播放器主要围绕实现以上两大功能,可以建立如表1所示的对象。
表1 播放器所建对象列表对象 属性 方法操作界面媒体文件、路径,媒体播放进度、状态,音量信息 显示媒体文件信息(文件名、路径) 媒体播放控制:打开文件、播放、暂停、停止、退出、全屏 显示播放信息(播放进度、状态)、控制音量 媒体播放媒体文件名、路径,控制命令 打开文件、播放、暂停、停止、退出、全屏 音量控制 音量调节 放大音量,减小音量音量控制和媒体播放对象对界面管理存在依赖关系,这两个对象要从界面获取控制指令,它们的属性要在界面上显示。
本播放器的类图如图2所示。
媒体播放 音量调节 播放器图2 播放器类图三 界面设计界面应满足以下要求:1. 界面首先要布置一系列按钮控件实现所有要实现的功能;2. 设置“播放进度条”来指示媒体文件的播放进度,还应该可以用鼠标拖动进度条来改变播放进度;3. 设置音量控制按钮(包括增大和减小);4. 界面应尽量美观;根据以上描述,程序运行时效果如图3所示。
javplayer原理
javplayer原理JavaPlayer是一个用于在Java应用程序中播放音频和视频文件的工具。
它基于Java Media Framework(JMF)和Java Sound API,并提供了简单易用的接口来实现音视频播放功能。
JavaPlayer的原理主要包括以下几个方面:1. **JMF架构**:Java Media Framework是用于处理音频和视频数据的Java API。
它提供了一组类库和接口,用于实现音视频播放、录制、编辑等功能。
JMF的架构主要包括媒体引擎、媒体处理器和数据源。
媒体引擎负责协调各个组件,媒体处理器用于处理媒体数据,数据源提供媒体数据。
2. **媒体播放**:JavaPlayer通过JMF提供的媒体引擎和媒体处理器来实现媒体文件的播放。
首先,JavaPlayer需要创建一个媒体播放器对象,并指定要播放的媒体文件。
然后,JavaPlayer会使用媒体引擎加载媒体数据,并使用媒体处理器解码和播放媒体数据。
3. **音视频同步**:在播放音视频文件时,JavaPlayer需要确保音频和视频的同步。
这通常通过同步时钟和缓冲区来实现。
JavaPlayer会使用一个时钟对象来跟踪音视频数据的播放进度,并根据时钟来同步音频和视频的播放。
同时,JavaPlayer还会使用缓冲区来处理媒体数据的加载和播放延迟,以确保音视频同步。
4. **事件处理**:JavaPlayer可以通过监听媒体播放器的事件来处理播放过程中的各种情况。
例如,JavaPlayer可以监听媒体播放器的播放完成事件,以便在媒体文件播放完毕时执行相应的操作。
此外,JavaPlayer还可以监听媒体播放器的错误事件,以处理播放过程中可能出现的错误。
总的来说,JavaPlayer的原理是基于JMF的媒体处理和播放机制实现的。
它通过媒体引擎和媒体处理器加载、解码和播放音视频文件,并通过时钟和缓冲区来实现音视频同步和播放控制。
java的JMF框架介绍(播放视频)
用java编写打开摄像头程序2Java媒体框架(JMF)使你能够编写出功能强大的多媒体程序,却不用关心底层复杂的实现细节。
JMF API 的使用相对比较简单,但是能够满足几乎所有多媒体编程的需求。
在这篇文章中,我将向你介绍如何用很少的代码就编写出多媒体程序。
Java多媒体框架(JMF)中包含了许多用于处理多媒体的API。
它是一个相当复杂的系统,完全了解这个系统可能需要花上几周的时间,但是这篇文章将主要介绍JMF的几个核心接口和类,然后通过一个简单的例子向你展示如何利用该接口进行编程。
JMF目前的最新版本是2.1,Sun通过它向Java中引入处理多媒体的能力。
下面是JMF所支持的功能的一●可以在Java Applet和应用程序中播放各种媒体文件,例如AU、AVI、MIDI、MPEG、QuickTime和WAV等文件。
●可以播放从互联网上下载的媒体流。
●可以利用麦克风和摄像机一类的设备截取音频和视频,并保存成多媒体文件。
●处理多媒体文件,转换文件格式。
●向互联网上传音频和视频数据流。
●在互联网上广播音频和视频数据。
JMF的结构为了更好地说明JMF的结构,让我们用立体声音响做一个简单的比喻。
当你CD机播放CD唱片的时候,CD唱片向系统提供音乐信号。
这些数据是在录音棚中用麦克风和其他类似的设备记录下来的。
CD播放机将音乐信号传送到系统的音箱上。
在这个例子中,麦克风就是一个音频截取设备,CD唱片是数据源,而音箱是输出设备。
JMF的结构和立体声音响系统非常相似,在后面的文章中,你会遇到下面的这些术语:●数据源(Data source)●截取设备(Capture Device,包括视频和音频截取设备)●播放器(Player)●处理器(Processor)●数据格式(Format)●管理器(Manager)下面让我们来看一看这些术语到底代表什么意思。
1.数据源就像CD中保存了歌曲一样,数据源中包含了媒体数据流。
java vlc 参数
java vlc 参数Java VLC参数是指使用Java编程语言调用VLC(VideoLAN 客户端)时可以使用的一组参数或选项。
这些参数可以用于配置和控制VLC的行为,例如设置视频的显示模式、设置音频输入源和输出设备、调整音频和视频的编解码器、选择子标题轨道等。
1. --no-video :禁止视频播放。
使用这个参数可以在只需要音频的情况下节省系统资源和带宽。
2. --no-audio :禁止音频播放。
使用这个参数可以在只需要视频的情况下节省系统资源和带宽。
3. --screen-width :设置视频显示窗口的宽度。
可以通过指定具体的像素值或使用相对值(例如百分比)来调整窗口大小。
4. --screen-height :设置视频显示窗口的高度。
与--screen-width参数类似,可以指定具体的像素值或相对值。
5. --input-file :指定要播放的媒体文件的路径。
可以是本地文件路径或网络URL地址。
6. --video-filter=name :指定要应用的视频过滤器的名称。
VLC支持多种视频过滤器,例如镜像、旋转、亮度调整等。
7. --audio-filter=name :指定要应用的音频过滤器的名称。
可以通过音频过滤器来实现音频增强、去噪、均衡等效果。
8. --sub-track :选择要显示的字幕轨道。
可以使用轨道ID或轨道名称来指定,例如--sub-track=1或--sub-track="English"。
9. --disable-screensaver :禁用屏幕保护程序。
使用这个参数可以确保在播放媒体时屏幕不会自动关闭或进入节能模式。
10. --fullscreen :以全屏模式播放媒体。
使用这个参数可以最大化视频显示窗口,占据整个屏幕。
11. --play-and-exit :播放完媒体后自动退出。
使用这个参数可以在播放完媒体后自动关闭VLC应用程序。
使用Java创建视频播放器
使用Java创建视频播放器-一个实战教程视频播放器是一种常见的应用程序,它允许用户播放本地视频文件或在线视频流。
在这个实战博客中,我们将创建一个简单的Java视频播放器,演示如何使用Java编程语言和Java多媒体库来实现视频播放功能。
以下是本实战博客的主要内容:项目概述准备工作创建Java项目添加多媒体库创建GUI界面播放本地视频播放在线视频总结让我们开始吧!1. 项目概述在本项目中,我们将创建一个Java视频播放器应用程序,它包括以下主要功能:显示视频播放窗口,包括播放、暂停、停止、音量控制和进度条。
允许用户选择本地视频文件并播放。
允许用户输入在线视频的URL并播放。
我们将使用Java编程语言和Java多媒体库来构建这个视频播放器应用程序。
2. 准备工作在开始之前,确保您的开发环境已设置好。
我们将使用Java编程语言和一些开发库来构建视频播放器应用程序,不需要额外的工具或库。
3. 创建Java项目首先,创建一个新的Java项目,您可以使用任何Java集成开发环境(IDE)来完成此操作。
在项目中,我们将创建Java类来实现视频播放器应用程序。
4. 添加多媒体库为了播放视频,我们需要引入一个Java多媒体库。
在本示例中,我们将使用JavaFX,它是Java的官方多媒体库,具有强大的视频播放功能。
请确保您的Java开发环境包含JavaFX库。
大多数现代的Java开发工具都默认包含JavaFX。
如果您不确定是否已包含JavaFX,可以在项目配置中进行检查。
5. 创建GUI界面我们将创建一个简单的Swing GUI界面,用于显示视频播放窗口和控制按钮。
创建一个Java 类,例如VideoPlayerApp,并在其中创建GUI界面。
javaCopy codeimport javafx.embed.swing.JFXPanel;import javafx.scene.media.Media;import javafx.scene.media.MediaPlayer;import javafx.scene.media.MediaView;import javafx.util.Duration;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;public class VideoPlayerApp {private JFrame frame;private JFXPanel videoPanel;private MediaView mediaView;private MediaPlayer mediaPlayer;private JButton playButton;private JButton pauseButton;private JButton stopButton;private JSlider volumeSlider;private JSlider progressSlider;public VideoPlayerApp() {frame = new JFrame("视频播放器");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(800, 600);frame.setLayout(new BorderLayout());videoPanel = new JFXPanel();frame.add(videoPanel, BorderLayout.CENTER);JPanel controlPanel = new JPanel(new FlowLayout());playButton = new JButton("播放");pauseButton = new JButton("暂停");stopButton = new JButton("停止");volumeSlider = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);progressSlider = new JSlider(JSlider.HORIZONTAL, 0, 100, 0);controlPanel.add(playButton);controlPanel.add(pauseButton);controlPanel.add(stopButton);controlPanel.add(volumeSlider);controlPanel.add(progressSlider);frame.add(controlPanel, BorderLayout.SOUTH);playButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {playVideo();}});pauseButton.addActionListener(new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) {pauseVideo();}});stopButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {stopVideo();}});volumeSlider.addChangeListener(e -> {adjustVolume(volumeSlider.getValue());});progressSlider.addChangeListener(e -> {seekToProgress(progressSlider.getValue());});frame.setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(() -> new VideoPlayerApp());}private void playVideo() {// 实现播放视频的代码,略...}private void pauseVideo() {// 实现暂停视频的代码,略...}private void stopVideo() {// 实现停止视频的代码,略...}private void adjustVolume(int volume) {// 实现调整音量的代码,略...}private void seekToProgress(int progress) {// 实现跳转进度的代码,略...}}在上述代码中,我们创建了一个VideoPlayerApp类,包括一个Swing窗口和视频播放窗口、控制按钮以及音量和进度条。
jplayer 用法
jplayer 用法jPlayer是一个流行的开源HTML5音频和视频播放器插件,具有灵活的使用方式和丰富的功能。
它不需要使用Flash,能够在各种设备和浏览器上播放多种媒体文件格式。
通过简单的HTML和JavaScript代码,你可以在你的网站上集成jPlayer并实现各种功能。
下面是一些jPlayer的常见用法:1. 基本媒体播放:通过简单的HTML元素和jPlayer的初始化配置,你可以轻松地在网页上播放音频和视频文件。
你可以指定媒体文件的路径、类型和其他相关的设置,然后通过调用相应的jPlayer方法来控制播放、暂停、音量等。
2. 自定义外观和样式:jPlayer提供了一套灵活的皮肤和样式选项,使你能够自定义播放器的外观和样式,以与你的网站风格相匹配。
你可以使用CSS来自定义播放器的颜色、大小、进度条样式等,从而实现个性化的播放器界面。
3. 媒体播放列表:jPlayer还支持创建和管理媒体播放列表。
你可以通过定义一个包含多个媒体文件的列表,然后使用相应的控制按钮来切换、播放和管理这些媒体文件。
这对于创建音乐播放器或视频集锦非常有用。
4. 事件和回调:jPlayer通过事件和回调机制提供了更进一步的扩展性和控制能力。
你可以监听各种播放器事件,如播放、暂停、结束等,然后执行自定义的操作。
这意味着你可以根据自己的需求来实现更高级的交互和功能。
总而言之,jPlayer是一个功能强大且易于使用的HTML5音频和视频播放器插件。
无论你是要创建一个简单的媒体播放器还是实现复杂的音视频功能,jPlayer都能满足你的需求。
通过灵活的配置和自定义选项,你可以根据自己的网站需求来打造独特的媒体播放体验。
javplayer用法(一)
javplayer用法(一)JavPlayer的用法简介JavPlayer是一款优秀的视频播放器,提供了丰富的功能和良好的使用体验。
本文将介绍JavPlayer的一些常用用法,并详细说明使用方法。
1. 下载与安装•访问JavPlayer的官方网站•在下载页面选择适合你设备的版本(Windows、Mac、Android等)•点击下载按钮,等待下载完成•安装JavPlayer,根据安装向导进行操作2. 打开和导入视频文件•双击JavPlayer的桌面图标,打开程序•点击菜单栏中的“文件”选项•在下拉菜单中选择“导入”或者直接点击“导入”图标按钮•在文件浏览器中选择你想要播放的视频文件,点击“确认”按钮即可导入3. 播放控制播放暂停•点击播放器主界面的播放图标或者按下空格键即可开始播放,再次点击图标或按下空格键可暂停播放。
快进和快退•拖动播放器进度条或者按下方向键右键可以快进到视频的某个时间点。
•拖动进度条到左边或者按下方向键左键可以快退到视频的某个时间点。
调整音量•点击播放器主界面的音量图标或者按下方向键上键可以增加音量。
•点击播放器主界面的音量图标或者按下方向键下键可以减小音量。
全屏和退出全屏•点击播放器主界面右下角的全屏图标或者按下F11键可以切换到全屏模式。
•在全屏模式下,再次点击全屏图标或者按下F11键可以退出全屏模式。
4. 字幕和音轨选择•点击菜单栏中的“字幕”选项,选择你想要的字幕语言或者禁用字幕。
•点击菜单栏中的“音轨”选项,选择你想要的音轨或者静音。
5. 设置•点击菜单栏中的“设置”选项,可以自定义JavPlayer的各种选项,包括界面语言、快捷键等。
•在设置中,你还可以调整播放器的画面质量、声音效果等参数。
6. 截图和录制•在播放过程中,点击播放器主界面的截图图标可以截取当前画面,并保存为图片。
•点击菜单栏中的“录制”选项,可以将视频录制保存为本地文件。
以上就是JavPlayer的一些常用用法,希望对你有所帮助!。
利用Java进行音视频处理与流媒体传输
利用Java进行音视频处理与流媒体传输随着互联网的发展,音视频处理与流媒体传输变得越来越重要。
无论是在线教育、视频会议、直播平台,还是音视频剪辑、视频监控等领域,都需要利用Java进行音视频处理与流媒体传输。
本文将介绍如何利用Java来实现这些功能,并讨论其中的一些关键技术。
一、音视频处理1. 音视频处理的基本概念音视频处理是指将音频或视频信号进行采集、编码、解码、处理和渲染等一系列操作。
在Java中,可以使用开源库如FFmpeg、JAVE等来进行音视频处理。
这些库提供了丰富的功能,如音视频录制、格式转换、剪辑编辑、添加特效等。
2. 音视频采集与录制音视频采集是指通过相机或麦克风等设备来采集音频或视频信号。
在Java中,可以使用Java Media Framework (JMF)库来实现音视频的采集与录制。
JMF提供了丰富的API,可以控制音视频设备的设置、获取设备信息,并进行音视频录制。
3. 音视频编码与解码音视频编码是将原始的音频或视频数据按照特定的算法进行压缩,以减小数据量并保持较高的质量。
而音视频解码则是将编码后的数据进行解压缩,还原成原始的音频或视频数据。
在Java中,常用的音视频编解码器有FFmpeg、LAME等。
通过调用这些编解码器的库,可以实现音视频的编码与解码。
4. 音视频处理与编辑音视频处理与编辑是对音视频数据进行剪辑、合并、添加特效等操作,以达到一定的效果。
在Java中,可以使用开源库如Xuggler、JCodec等来进行音视频处理与编辑。
这些库提供了丰富的功能,如视频剪辑、水印添加、字幕插入等。
二、流媒体传输1. 流媒体传输的基本原理流媒体传输是指以流的方式传输音视频数据,使得用户可以实时地观看或收听。
与传统的下载方式不同,流媒体传输可以边下载边播放,提高用户的使用体验。
在Java中,可以使用开源库如VLCJ、JMF等来实现流媒体的传输。
2. 音视频流的封装与解封装音视频流的封装是将音视频数据打包成特定的格式,以便于传输和播放。
客户端开发教程:学会使用常见的视频播放技术(三)
客户端开发教程:学会使用常见的视频播放技术在移动互联网时代,视频已经成为人们生活中不可或缺的一部分。
视频播放技术的发展和应用也呈现出多样化的趋势。
作为一名客户端开发者,学会使用常见的视频播放技术是非常重要的。
本文将介绍几种常见的视频播放技术,并为读者提供相关的开发指引。
一、HTML5视频播放技术HTML5 是一种标准化的技术,为视频播放提供了很强的支持。
使用HTML5视频播放技术,可以不依赖于第三方插件,直接在网页中播放视频。
可以通过 ```<video>``` 标签来引入视频,并通过JavaScript控制视频的播放、暂停、音量等操作。
这种技术适用于Web端网页中的视频播放。
二、iOS平台视频播放技术在iOS平台,苹果提供了 ```AVPlayer``` 和```AVPlayerViewController``` 两个类用于视频播放。
开发者可以使用这两个类来实现视频的加载、播放、暂停和控制功能。
同时,iOS平台还支持通过HTTP Live Streaming(HLS)来实现流媒体的播放。
对于iOS开发者而言,熟悉这些类和技术,可以在应用中自定义视频播放器,提供更好的用户体验。
三、Android平台视频播放技术在Android平台,Android提供了 ```VideoView``` 和```MediaPlayer``` 等类用于视频播放。
开发者可以通过```VideoView``` 来实现简单的视频播放功能,而```MediaPlayer``` 则提供了更为灵活的视频播放控制和管理功能。
同时,Android平台也支持HTTP Live Streaming(HLS)技术,以实现流媒体的播放。
熟练掌握Android平台的视频播放技术,可以轻松实现视频播放器的定制和扩展。
四、跨平台视频播放技术除了针对特定平台的视频播放技术外,还有一些跨平台的视频播放技术可供选择。
例如,React Native 和 Flutter 是两个流行的跨平台开发框架,都提供了视频播放的组件和API。
java实现视频上传和播放
* @param codcFilePath格式转换后的的文件保存路径
* @param mediaPicPath截图保存路径
* @return
* @throws Exception
*/
public boolean executeCodecs(String ffmpegPath,String upFilePath, String codcFilePath, String mediaPicPath)throws Exception;
multipart/form-data
表单数据被编码为一条消息,页面上每个控件对应消息中的一部分
text/plain
表单数据以纯文本形式进行编码,其中不含任何控件格式的字符
业务接口定义
面向接口编程,接口中定义系统功能模块.这样方便理清业务,同时接口的对象必须由实现了该接口的对象来创建.这样就避免编码中的某些业务遗漏等,同时扩展性也增强了.
src varchar(200) not null comment '视频存放地址' ,
picture varchar(200) not null comment '视频截图' ,
descript varchar(400) comment '视频描述' ,
uptime varchar(40) comment '上传时间'
*/
public int getAllMediaCount()throws Exception;
/**
*带分页的查询
* @param firstResult
javplayer用法
javplayer用法
本文将为大家介绍javplayer的使用方法。
javplayer是一个用于浏览和播放java程序文件的软件,它可以很好的满足大家浏览和播放java 程序文件的需求。
在运行javplayer之前,大家需要先安装java环境,如果大家还没有安装java环境,可以参考这篇文章:Java环境安装与配置。
安装完成后,打开javplayer软件,在运行界面中输入java程序文件的地址,单击“打开”按钮。
如果大家对java程序的文件格式有一些特殊需求,可以使用javplayer的“设置”选项进行设置。
大家可以通过“文件”菜单中的“保存当前文件到本地”命令保存java程序文件到本地。
大家可以通过“文件”菜单中的“打开本地文件”命令打开本地保存的java程序文件。
大家可以通过“文件”菜单中的“另存为”命令对java程序文件进行保存。
在运行java程序文件的过程中,大家可以使用“控制”菜单中的“暂停”和“恢复”命令暂停和恢复播放。
大家可以使用“控制”菜单中的“退出”命令退出javplayer。
以上就是javplayer的使用方法,希望可以帮助大家更好的理解和使用javplayer。
java视频播放器几种
java视频播放器几种package com.bird.jmf;import java.awt.*;import java.awt.event.*;import java.io.*;import /doc/0912398320.html,.*;import javax.swing.*;import javax.media.*;// 视频播放程序public class VideoPlayDemo extends JFrame {private Player player; // 播放器对象private Component visualMedia; // 视频显示组件private Component mediaControl; // 视频播放控制组件private Container container; // 主容器private File mediaFile; //媒体文件private URL fileURL; //媒体文件URL地址public VideoPlayDemo() { // 构造函数super("视频播放程序"); //调用父类构造函数container = getContentPane(); //得到窗口容器JToolBar toobar = new JToolBar(); //实例化工具栏JButton openFile = new JButton("打开媒体文件"); //实例化按钮toobar.add(openFile); //增加按钮到工具栏JButton openURL = new JButton("打开网络地址");toobar.add(openURL);container.add(toobar, BorderLayout.NORTH); //设置工具栏openFile.addActionListener(new ActionListener() { //打开文件按钮事件处理public void actionPerformed(ActionEvent event) {JFileChooser fileChooser = new JFileChooser(); //实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); //设置文件打开模式为仅打开文件int result =fileChooser.showOpenDialog(VideoPlayDemo.this);//显示对话框if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为mediaFile = fileChooser.getSelectedFile(); //得到选择的文件}if (mediaFile != null) {try {fileURL = mediaFile.toURL(); //得到文件的URL地址} catch (MalformedURLException ex) {ex.printStackTrace(); //输出错误信息showMessage("打开错误"); //显示错误信息}startPlayer(fileURL.toString()); //开始播放打开的文件 }}});openURL.addActionListener(new ActionListener() { //打开URL按钮事件处理public void actionPerformed(ActionEvent event) {String addressName=JOptionPane.showInputDialog(VideoPlayDemo.this, "输入URL地址");if (addressName != null)startPlayer(addressName); //开始播放打开的URL}});Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE);setSize(300, 200); //设置窗口大小setVisible(true); //设置窗口为可视setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序}//初始化播放器public void startPlayer(String mediaLocation) {if (player != null)//如果播放器非空则移去先前的播放器组件if (visualMedia != null)container.remove(visualMedia); //如果对象visualMedia非空则移去if (mediaControl != null) {container.remove(mediaControl); //如果对象mediaControl非空则移去player.close(); //关闭播放器}MediaLocator mediaLocator = new MediaLocator(mediaLocation); //媒体定位器if (mediaLocator == null) {showMessage("打开文件错误"); //显示错误信息return;}try {player = Manager.createPlayer(mediaLocator); //得到播放器实例player.addControllerListener(new PlayerEventHandler()); //增加播放控制器player.realize();} catch (Exception ex) {ex.printStackTrace();showMessage("打开错误"); //显示错误信息}}//取得媒体组件//Download by /doc/0912398320.html,public void getMediaComponents() {visualMedia = player.getVisualComponent(); //取得视频显示组件//如果对象visualMedia非空则加入到窗口内容窗格if (visualMedia != null) {container.add(visualMedia, BorderLayout.CENTER);pack();}mediaControl = player.getControlPanelComponent(); //取得播放控制组件//如果对象visualMedia非空则加入到窗口内容窗格if (mediaControl != null)container.add(mediaControl, BorderLayout.SOUTH);}//播放器事件处理private class PlayerEventHandler extends ControllerAdapter {public void realizeComplete(RealizeCompleteEvent realizeDoneEvent) {player.prefetch(); //预取媒体数据}//完成预取媒体数据后,开始播放媒体public void prefetchComplete(PrefetchCompleteEvent prefetchDoneEvent) {getMediaComponents();validate();player.start(); //开始播放媒体}//如果媒体播放完毕,重新设置媒体时间并停止媒体播放器public void endOfMedia(EndOfMediaEvent mediaEndEvent) { player.setMediaTime(new Time(0)); //重新设置媒体时间player.stop(); // 停止媒体播放}}public void showMessage(String s) {JOptionPane.showMessageDialog(this, s); //显示提示信息}public static void main(String args[]) {new VideoPlayDemo();}}第二个源码事例import java.awt.BorderLayout;import /doc/0912398320.html,ponent;import java.awt.FileDialog;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.media.ControllerClosedEvent;import javax.media.ControllerEvent;import javax.media.ControllerListener;import javax.media.EndOfMediaEvent;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.NoPlayerException;import javax.media.Player;import javax.media.PrefetchCompleteEvent;import javax.media.RealizeCompleteEvent;import javax.media.Time;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.SwingUtilities;import javax.swing.UIManager;public class JMFMediaPlayer extends JFrame implements ActionListener, ControllerListener, ItemListener {// JMF的播放器Player player;// 播放器的视频组件和控制组件Component vedioComponent;Component controlComponent;// 标示是否是第一次打开播放器boolean first = true;// 标示是否需要循环boolean loop = false;// 文件当前目录String currentDirectory;// 构造方法public JMFMediaPlayer(String title) {super(title);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){// 用户点击窗口系统菜单的关闭按钮// 调用dispose以执行windowCloseddispose();}public void windowClosed(WindowEvent e){if (player != null){// 关闭JMF播放器对象player.close();}System.exit(0);}});// 创建播放器的菜单JMenu fileMenu = new JMenu("文件");JMenuItem openMemuItem = new JMenuItem("打开"); openMemuItem.addActionListener(this);fileMenu.add(openMemuItem);// 添加一个分割条fileMenu.addSeparator();// 创建一个复选框菜单项JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循环", false); loopMenuItem.addItemListener(this);fileMenu.add(loopMenuItem);fileMenu.addSeparator();JMenuItem exitMemuItem = new JMenuItem("退出");exitMemuItem.addActionListener(this);fileMenu.add(exitMemuItem);JMenuBar menuBar = new JMenuBar();menuBar.add(fileMenu);this.setJMenuBar(menuBar);this.setSize(200, 200);try {// 设置界面的外观,为系统外观UIManager.setLookAndFeel(UIManager.getSystemLookAndF eelClassName()); SwingUtilities.updateComponentTreeUI(this);} catch (Exception e) {e.printStackTrace();}this.setVisible(true);}/*** 实现了ActionListener接口,处理组件的活动事件*/public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("退出")) {// 调用dispose以便执行windowCloseddispose();return;}FileDialog fileDialog = new FileDialog(this, "打开媒体文件", FileDialog.LOAD); fileDialog.setDirectory(currentDirectory);fileDialog.setVisible(true);// 如果用户放弃选择文件,则返回if (fileDialog.getFile() == null){return;}currentDirectory = fileDialog.getDirectory();if (player != null){// 关闭已经存在JMF播放器对象player.close();}try {// 创建一个打开选择文件的播放器player = Manager.createPlayer(new MediaLocator("file:" + fileDialog.getDirectory() + fileDialog.getFile()));} catch (java.io.IOException e2) {System.out.println(e2);return;} catch (NoPlayerException e2) {System.out.println("不能找到播放器.");return;}if (player == null) {System.out.println("无法创建播放器.");return;}first = false;this.setTitle(fileDialog.getFile());// 播放器的控制事件处理player.addControllerListener(this);// 预读文件内容player.prefetch();}/*** 实现ControllerListener接口的方法,处理播放器的控制事件*/ public void controllerUpdate(ControllerEvent e) {// 调用player.close()时ControllerClosedEvent事件出现。
javaplayer总结(一)
javaplayer总结(一)前言在当今数字化的时代,人们对多媒体内容的需求越来越大。
为了满足用户的需求,许多开发者纷纷开发出各种多媒体播放器。
其中,Javaplayer作为一款资深的创作者,我想分享一些关于Javaplayer的相关内容。
正文Javaplayer的特点Javaplayer作为一款多媒体播放器,具有以下特点: - 跨平台性:Javaplayer可以在多个操作系统上运行,包括Windows、macOS和Linux等。
- 多格式支持:Javaplayer支持多种音频和视频格式,例如MP3、WAV、MPEG、AVI等,使用户可以无障碍地播放各种媒体文件。
- 强大的功能:Javaplayer提供了许多实用的功能,例如音频均衡器、倍速播放、循环播放等,提升了用户的使用体验。
- 简洁易用的界面:Javaplayer具有直观的用户界面,用户可以轻松选择和操作各种功能,降低了学习和使用难度。
Javaplayer的创新之处Javaplayer在功能和设计上有着独特的创新之处: - 自定义皮肤:Javaplayer允许用户自定义播放器的皮肤,让用户能够根据自己的喜好来个性化播放器的外观。
- 智能播放列表:Javaplayer能够根据用户的播放历史和偏好智能生成播放列表,提供更加个性化、智能化的播放体验。
- 快捷键支持:Javaplayer内置了丰富的快捷键,用户可以通过简单的按键操作来快速控制播放器,提高了工作效率。
Javaplayer的未来展望虽然Javaplayer已经具备了许多优秀的特点和功能,但我们仍然对它的未来充满期待: - 增强的网络功能:在未来版本中,我们计划加入更加强大的网络功能,例如在线播放、网络音乐库等,提供更加全面的多媒体解决方案。
- 更加智能的用户体验:我们将持续改进Javaplayer的智能算法,提升用户体验,使播放器能够更好地根据用户的喜好和行为习惯进行个性化推荐。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.bird.jmf;import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import javax.swing.*;import javax.media.*;// 视频播放程序public class VideoPlayDemo extends JFrame {private Player player; // 播放器对象private Component visualMedia; // 视频显示组件private Component mediaControl; // 视频播放控制组件private Container container; // 主容器private File mediaFile; //媒体文件private URL fileURL; //媒体文件URL地址public VideoPlayDemo() { // 构造函数super("视频播放程序"); //调用父类构造函数container = getContentPane(); //得到窗口容器JToolBar toobar = new JToolBar(); //实例化工具栏JButton openFile = new JButton("打开媒体文件"); //实例化按钮toobar.add(openFile); //增加按钮到工具栏JButton openURL = new JButton("打开网络地址");toobar.add(openURL);container.add(toobar, BorderLayout.NORTH); //设置工具栏openFile.addActionListener(new ActionListener() { //打开文件按钮事件处理public void actionPerformed(ActionEvent event) {JFileChooser fileChooser = new JFileChooser(); //实例化文件选择器fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);//设置文件打开模式为仅打开文件int result =fileChooser.showOpenDialog(VideoPlayDemo.this);//显示对话框if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为mediaFile = fileChooser.getSelectedFile(); //得到选择的文件}if (mediaFile != null) {try {fileURL = mediaFile.toURL(); //得到文件的URL地址 } catch (MalformedURLException ex) {ex.printStackTrace(); //输出错误信息showMessage("打开错误"); //显示错误信息}startPlayer(fileURL.toString()); //开始播放打开的文件 }}});openURL.addActionListener(new ActionListener() { //打开URL按钮事件处理public void actionPerformed(ActionEvent event) {String addressName=JOptionPane.showInputDialog(VideoPlayDemo.this, "输入URL地址");if (addressName != null)startPlayer(addressName); //开始播放打开的URL}});Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE);setSize(300, 200); //设置窗口大小setVisible(true); //设置窗口为可视setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序}//初始化播放器public void startPlayer(String mediaLocation) {if (player != null)//如果播放器非空则移去先前的播放器组件if (visualMedia != null)container.remove(visualMedia); //如果对象visualMedia非空则移去if (mediaControl != null) {container.remove(mediaControl); //如果对象mediaControl非空则移去player.close(); //关闭播放器}MediaLocator mediaLocator = new MediaLocator(mediaLocation); //媒体定位器if (mediaLocator == null) {showMessage("打开文件错误"); //显示错误信息return;}try {player = Manager.createPlayer(mediaLocator); //得到播放器实例 player.addControllerListener(new PlayerEventHandler()); //增加播放控制器player.realize();} catch (Exception ex) {ex.printStackTrace();showMessage("打开错误"); //显示错误信息}}//取得媒体组件//Download by public void getMediaComponents() {visualMedia = player.getVisualComponent(); //取得视频显示组件//如果对象visualMedia非空则加入到窗口内容窗格if (visualMedia != null) {container.add(visualMedia, BorderLayout.CENTER);pack();}mediaControl = player.getControlPanelComponent(); //取得播放控制组件//如果对象visualMedia非空则加入到窗口内容窗格if (mediaControl != null)container.add(mediaControl, BorderLayout.SOUTH);}//播放器事件处理private class PlayerEventHandler extends ControllerAdapter {public void realizeComplete(RealizeCompleteEvent realizeDoneEvent) {player.prefetch(); //预取媒体数据}//完成预取媒体数据后,开始播放媒体public void prefetchComplete(PrefetchCompleteEvent prefetchDoneEvent) {getMediaComponents();validate();player.start(); //开始播放媒体}//如果媒体播放完毕,重新设置媒体时间并停止媒体播放器public void endOfMedia(EndOfMediaEvent mediaEndEvent) { player.setMediaTime(new Time(0)); //重新设置媒体时间 player.stop(); // 停止媒体播放}}public void showMessage(String s) {JOptionPane.showMessageDialog(this, s); //显示提示信息}public static void main(String args[]) {new VideoPlayDemo();}}第二个源码事例import java.awt.BorderLayout;import ponent;import java.awt.FileDialog;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.media.ControllerClosedEvent;import javax.media.ControllerEvent;import javax.media.ControllerListener;import javax.media.EndOfMediaEvent;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.NoPlayerException;import javax.media.Player;import javax.media.PrefetchCompleteEvent;import javax.media.RealizeCompleteEvent;import javax.media.Time;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.SwingUtilities;import javax.swing.UIManager;public class JMFMediaPlayer extends JFrame implements ActionListener, ControllerListener, ItemListener {// JMF的播放器Player player;// 播放器的视频组件和控制组件Component vedioComponent;Component controlComponent;// 标示是否是第一次打开播放器boolean first = true;// 标示是否需要循环boolean loop = false;// 文件当前目录String currentDirectory;// 构造方法public JMFMediaPlayer(String title) {super(title);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){// 用户点击窗口系统菜单的关闭按钮// 调用dispose以执行windowCloseddispose();}public void windowClosed(WindowEvent e){if (player != null){// 关闭JMF播放器对象player.close();}System.exit(0);}});// 创建播放器的菜单JMenu fileMenu = new JMenu("文件");JMenuItem openMemuItem = new JMenuItem("打开"); openMemuItem.addActionListener(this);fileMenu.add(openMemuItem);// 添加一个分割条fileMenu.addSeparator();// 创建一个复选框菜单项JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循环", false); loopMenuItem.addItemListener(this);fileMenu.add(loopMenuItem);fileMenu.addSeparator();JMenuItem exitMemuItem = new JMenuItem("退出");exitMemuItem.addActionListener(this);fileMenu.add(exitMemuItem);JMenuBar menuBar = new JMenuBar();menuBar.add(fileMenu);this.setJMenuBar(menuBar);this.setSize(200, 200);try {// 设置界面的外观,为系统外观UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this);} catch (Exception e) {e.printStackTrace();}this.setVisible(true);}/*** 实现了ActionListener接口,处理组件的活动事件*/public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("退出")) {// 调用dispose以便执行windowCloseddispose();return;}FileDialog fileDialog = new FileDialog(this, "打开媒体文件", FileDialog.LOAD); fileDialog.setDirectory(currentDirectory);fileDialog.setVisible(true);// 如果用户放弃选择文件,则返回if (fileDialog.getFile() == null){return;}currentDirectory = fileDialog.getDirectory();if (player != null){// 关闭已经存在JMF播放器对象player.close();}try {// 创建一个打开选择文件的播放器player = Manager.createPlayer(new MediaLocator("file:"+ fileDialog.getDirectory() + fileDialog.getFile()));} catch (java.io.IOException e2) {System.out.println(e2);return;} catch (NoPlayerException e2) {System.out.println("不能找到播放器.");return;}if (player == null) {System.out.println("无法创建播放器.");return;}first = false;this.setTitle(fileDialog.getFile());// 播放器的控制事件处理player.addControllerListener(this);// 预读文件内容player.prefetch();}/*** 实现ControllerListener接口的方法,处理播放器的控制事件*/public void controllerUpdate(ControllerEvent e) {// 调用player.close()时ControllerClosedEvent事件出现。