Java使用Jmf开发播放器
来源:互联网 发布:网络教育和专升本 编辑:程序博客网 时间:2024/05/22 13:58
1.导入jmf的相关jar包 下载地址如下:
http://download.csdn.net/detail/a639735331/9886638
2.运行如下代码
温馨提示:avi文件必须是全帧无压缩的 否则无法播放视频
import java.awt.BorderLayout;import java.awt.Component;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.IOException;import java.net.URL;import javax.media.ControllerEvent;import javax.media.ControllerListener;import javax.media.EndOfMediaEvent;import javax.media.Manager;import javax.media.NoPlayerException;import javax.media.Player;import javax.media.PrefetchCompleteEvent;import javax.media.RealizeCompleteEvent;import javax.media.Time;import javax.swing.JFrame;public class VideoPlayer extends JFrame implements ControllerListener {private int videoWidth = 0;private int videoHeight = 0;private int controlHeight = 30;private int insetWidth = 10;private int insetHeight = 30;private Player player;private Component visual; // 播放组件private Component control = null; // 控制组件public VideoPlayer() {super("视频播放器");setSize(320, 240);setVisible(true);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent we) {if (player != null) {player.close();}System.exit(0);}});}public void play() {URL url = null;try {// 准备一个要播放的视频文件的URLurl = new URL("file://F:/FFOutput/16.avi");// 通过调用Manager 的createPlayer方法来创建一个Player的对象// 这个对象是媒体播放的核心控制对象player = Manager.createPlayer(url);} catch (NoPlayerException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();}// 对Player对象注册监听器,能在相关事件发生的时候执行相关的动作player.addControllerListener(this);// 让Player对象进行相关的资源分配player.realize();}// 监听Player的相关事件public void controllerUpdate(ControllerEvent ce) {if (ce instanceof RealizeCompleteEvent) {// Player实例化完成后进行Player播放前预处理player.prefetch();} else if (ce instanceof PrefetchCompleteEvent) {if (visual != null) {return;}// 取得Player中的播放视频的组件,并得到视频窗口的大小// 然后把视频窗口的组件添加到Frame 窗口中,if ((visual = player.getVisualComponent()) != null) {//根据视频的宽高设置frame的宽和高//Dimension size = visual.getPreferredSize();//videoWidth = size.width;//videoHeight = size.height;//设置固定大小videoWidth = 500;videoHeight = 400;add(visual);} else {videoWidth = 320;}// 取得Player中的视频播放控制条组件,并把该组件添加到Frame 窗口中if ((control = player.getControlPanelComponent()) != null) {controlHeight = control.getPreferredSize().height;add(control, BorderLayout.SOUTH);}// 设定Frame 窗口的大小,使得满足视频文件的默认大小setSize(videoWidth + insetWidth, videoHeight + controlHeight+ insetHeight);validate();// 启动视频播放组件开始播放player.start();} else if (ce instanceof EndOfMediaEvent) {// 当播放视频完成后,把时间进度条恢复到开始,并再次重新开始播放player.setMediaTime(new Time(0));player.start();}}public static void main(String[] args) {VideoPlayer vp = new VideoPlayer();vp.play();}}
阅读全文
0 0
- Java使用Jmf开发播放器
- 使用JMF实现java写自己的视频播放器
- 使用JMF实现java写自己的视频播放器
- 使用JMF实现java写自己的视频播放器
- KevinPlayer java jmf mp3播放器
- jmf java播放媒体文件
- Java JMF播放音频文件
- java jmf视频播放器无法播放视频问题
- java下使用jmf开发媒体播放器
- 使用JMF实现音乐播放(java多媒体编程)
- 使用JMF实现音乐播放(java多媒体编程)
- 使用JMF实现音乐播放(java多媒体编程)
- Java写音乐播放器 JMF的有关问题
- Java JMF的使用
- JMF 播放器同步代码
- JMF播放器小例子
- 利用Java 3D技术播放动画之JMF技术-Java基础-Java-编程开发
- 使用JMF在java上使用媒体资源(播放音频等)
- hadoop HA 详解
- [ubuntu] 安装搜狗拼音之后如何调出来
- POJ 1426 Find the Multiple(dfs)
- 见习后对于有关献血问题的思考和回答
- C常用函数
- Java使用Jmf开发播放器
- Hadoop集群的配置文件的优先级
- Go开发:Mac上安装Go环境和VS Code
- Java中的引用变量详谈
- Elasticsearch集成中文分词器ik
- python机器学习day'6
- 编程模拟飞船加速变轨过程-物理基础篇(5) 摄动方程
- codevs 1961 躲避大龙 解题报告 SPFA
- 梯度下降:代码