第7周作业4——JMF(Java多媒体框架)的应用之视频播放器
2014-04-22 08:36
573 查看
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的状态变为Realized if (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[]) { VideoPlayer cap = new VideoPlayer(); cap.initAudioCapDevLoc(); cap.initVideoCapDevLoc(); cap.initAudioPlayer(); cap.initVideoPlayer(); try { Thread.currentThread().sleep(20000);//20秒后停止并关闭播放器 } catch (InterruptedException ex) { } cap.stopAndClosePlayer(); } }
相关文章推荐
- 。第7周作业——JMF(Java多媒体框架)的应用之音频播放与视频播放
- 网络121第7周实验——JMF(Java多媒体框架)的应用(音频、视频、摄像头等)
- 第7周作业1——JMF(Java多媒体框架)的应用之MP3播放器
- 第7周作业1——JMF(Java多媒体框架)的应用之MP3播放器 问题系列
- 第7周作业1——JMF(Java多媒体框架)的应用之MP3播放器(未完)
- Android(java)学习笔记243:多媒体之视频播放器
- JMF(Java多媒体框架)资料汇总
- Java JMF 多媒体框架
- OpenJWeb java web应用快速开发平台增删改查视频发布
- 【双旦献礼】Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
- Portal-Basic Java Web 应用开发框架:应用篇(十二) —— Action Convention
- Java 理论与实践: 应用 fork-join 框架
- ITU-R BT.1788建议书 对多媒体应用中视频质量的主观评估方法
- Java下的框架编程(5)--cglib的应用
- 【双旦献礼】Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
- 【Android 多媒体开发】 MediaPlayer 网络视频播放器
- android开发视频播放器-----视频播放 Vitamio框架的使用(一)
- Spring - Java/J2EE Application Framework 应用框架 第 5 章 Spring AOP: Spring之面向方面编程
- Spring - Java/J2EE Application Framework 应用框架 第 15 章 EJB的存取和实现