永发信息网

如何播放视频文件 java

答案:1  悬赏:0  手机版
解决时间 2021-01-29 14:00
视频文件格式有:avi,wmv,swf, rm ,asf,要求调用相应的嵌入式播放器播放即可。谁能给讲讲大体的步骤,有个简单的java代码最好
最佳答案
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
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("打开错误"); //显示错误信息
}

}

//取得媒体组件
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();
}

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
白令海峡沟通的两大洋是A. 北冰洋和太平洋B.
青岛眼科医院华清什么时候坐诊
结婚回礼送亲朋好友龙凤碗好吗
我的i pad2 里面的app store 没有了,估计是
满月这天会出现的天文现象是什么
上海医保杭州报销比例是多少钱
雅马哈天剑安装活塞箭头朝上还是朝下
腹蟹目虾的意思是什么啊?知道的请说下!
沙宣明发地址在什么地方,我要处理点事
合伙企业与公司有那些区别从定义,责任形式,议
大的痣,上面有几个小黑点是怎么回事
递献的意思是什么啊?知道的请说下!
狮岭中学好还是狮峰中学好?
英语饥饿的反义词
人到白头赖后昆打一字
推荐资讯
雁林茶坊地址有知道的么?有点事想过去
UI设计师编程要求高吗???
宝芳内衣坊(光明南路店)怎么去啊,我要去那办
守狗的意思是什么啊?知道的请说下!
铜锈进入皮肤怎么办?
甲父的意思是什么啊?知道的请说下!
家有儿女中与夏东海一同关在电梯里的那个女的
杭州到临平多少公里
仁兆旅馆怎么去啊,我要去那办事
山西省忻州市烟草专卖局地址在什么地方,想过
患者,男,38岁。转移性腹痛2天。检查:全腹压
我是在建筑企业的办事处工作,大多数时间处于
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?