使用JMF实现java写自己的视频播放器
JMF这个多媒体开发框架太牛了,简单的几句代码就能实现一个视频播放器的开发,厉害,就是支持的格式少了一些,没关系,这个视频播放器可以播放mpg,avi,fvl等等,想播放其他的请开发自己的插件,下面将代码贴上去
- package com.bird.jmf;
- import java.awt.BorderLayout;
- import java.awt.Component;
- 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 java.net.MalformedURLException;
- import java.net.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;
- @SuppressWarnings({ "restriction", "unused" })
- public class JMFSample implements ControllerListener {
- public static void main(String[] args) {
- JMFSample sp = new JMFSample();
- sp.play();
- }
- private Player mediaPlayer;
- private Frame f;
- private Player player;
- private Panel panel;
- private Component visual;
- private Component control = null;
- public void play(){
- f = new Frame("JMF Sample1");
- f.addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent we) {
- if(player != null) {
- player.close();
- }
- System.exit(0);
- }
- });
- f.setSize(500,400);
- f.setVisible(true);
- URL url = null;
- 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();
- }
- //对player对象注册监听器,能噶偶在相关事件发生的时候执行相关的动作
- player.addControllerListener(this);
- //让player对象进行相关的资源分配
- player.realize();
- }
- private int videoWidth = 0;
- private int videoHeight = 0;
- private int controlHeight = 30;
- private int insetWidth = 10;
- private int insetHeight = 30;
- //监听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) {
- Dimension size = visual.getPreferredSize();
- videoWidth = size.width;
- videoHeight = size.height;
- f.add(visual);
- } else {
- videoWidth = 320;
- }
- //取得player中的视频播放控制条组件,并把该组件添加到Frame窗口中
- if ((control = player.getControlPanelComponent()) != null) {
- controlHeight = control.getPreferredSize().height;
- f.add(control, BorderLayout.SOUTH);
- }
- //设定Frame窗口的大小,使得满足视频文件的默认大小
- f.setSize(videoWidth + insetWidth, videoHeight + controlHeight + insetHeight);
- f.validate();
- //启动视频播放组件开始播放
- player.start();
- mediaPlayer.start();
- } else if (ce instanceof EndOfMediaEvent) {
- //当播放视频完成后,把时间进度条恢复到开始,并再次重新开始播放
- player.setMediaTime(new Time(0));
- player.start();
- }
- }
- }
效果图如下
- 顶
使用JMF实现java写自己的视频播放器相关推荐
- 在Qt中如何用纯代码写一个本地视频播放器
一.首先用纯代码写本地视频播放器需要用到以下类 #include <QWidget> #include <QHBoxLayout> //水平布局 #include <QV ...
- java音频播放器代码_谁可以用Java编写音频或视频播放器的代码. 您可以运行实现....
全部展开 你好房东,你可以试试这个 import javax.media.ControllerEvent; import javax.media.ControllerListener; import ...
- 我想写一个网络视频播放器
最近两个月跟着斯坦福大学白胡子老头的公开课学习了一下swift语言下的ios应用开发,作为实践,我计划开发自己的第一款App:网络视频播放器. 产品设计 什么,就你一个搬砖的还要产品设计?好好,没有产 ...
- java写一个音乐播放器源码_求一个JAVA音乐播放器的源代码
展开全部 import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.E ...
- java写键盘鼠标录制器,易语言仿按键精灵录制键盘鼠标操作的代码
DLL命令表 .版本 2 .DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState" .参数 鼠标键, 整数型 . ...
- java三角形判断器_花了两个小时做了那么一个很丑的Java写的三角形判断器.........
闲着无事,花了两三个小时做了那么一个自己都看不下去的Java小程序,可用来判断三角形的类型,输入三边,可以求出各个角的正弦.余弦以及正切值! 说实话,丑得连自己都看不下去了! (不喜勿喷! ) 话不多 ...
- java jsp html嵌入视频播放器
在最近一个项目中需要简单的流媒体视频播放,经过一番搜索后找到一些合适的播放器及代码,在此记录并分享给大家. 由于仅需播放一些简单的格式因此不需要视频解码服务器. 1.播放rm.rmvb则需要vlc或r ...
- java如何开发视频软件_使用JAVA编写视频播放器
Java因其跨平台优势而陷入困境. 当时,我以为"写一次,到处跑". 这听起来不错,它应该是所有语言开发的最终方法. Java必将统治世界. 事实证明当时我还太小. 所谓的鱼和熊掌 ...
- java视频播放器制作_java创建简易视频播放器
java创建简易视频播放器 发布时间:2020-09-23 04:28:09 来源:脚本之家 阅读:98 作者:南柯一梦xihe 最近有个多媒体的作业,要求使用visualC++和OpenCV编写一个 ...
最新文章
- Dubbo源码学习总结系列三 dubbo-cluster集群模块
- jvm性能调优 - 07线上应用部署JVM实战_栈内存与永久代预估与设置
- 时间控件_Selenium时间控件的处理
- 在.NET Core类库中使用EF Core迁移数据库到SQL Server
- arm32和arm64常用指令B BL BLX机器码计算
- 好象现在才开始热爱生活了
- SWJTU 2208 最大覆盖
- ubuntu的无比注意事项
- 请假系统特例规则详细设计
- Python--随机森林模型
- Pg Admin4 无法正常启动
- 网络性能监测-系统监视器
- 21根火柴取放 c语言,趣味C语言题Word版
- denoted(denoted by)
- 【全开源+免费更新】doodoo.js快速入门教程 1
- Matlab计算矩阵频率分布直方图
- 使用for循环打印空心菱形图案
- C#字节数组(byte[])和字符串相互转换
- 使用canvas画折线图和曲线图
- iOS——3DES的加密