如何播放视频文件 java "java如何打开本地播放器后自动播放视频文件"

\u5982\u4f55\u64ad\u653e\u89c6\u9891\u6587\u4ef6 java

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.media.*;


// \u89c6\u9891\u64ad\u653e\u7a0b\u5e8f


public class VideoPlayDemo extends JFrame {


private Player player; // \u64ad\u653e\u5668\u5bf9\u8c61

private Component visualMedia; // \u89c6\u9891\u663e\u793a\u7ec4\u4ef6

private Component mediaControl; // \u89c6\u9891\u64ad\u653e\u63a7\u5236\u7ec4\u4ef6

private Container container; // \u4e3b\u5bb9\u5668

private File mediaFile; //\u5a92\u4f53\u6587\u4ef6

private URL fileURL; //\u5a92\u4f53\u6587\u4ef6URL\u5730\u5740


public VideoPlayDemo() { // \u6784\u9020\u51fd\u6570

super("\u89c6\u9891\u64ad\u653e\u7a0b\u5e8f"); //\u8c03\u7528\u7236\u7c7b\u6784\u9020\u51fd\u6570



container = getContentPane(); //\u5f97\u5230\u7a97\u53e3\u5bb9\u5668


JToolBar toobar = new JToolBar(); //\u5b9e\u4f8b\u5316\u5de5\u5177\u680f


JButton openFile = new JButton("\u6253\u5f00\u5a92\u4f53\u6587\u4ef6"); //\u5b9e\u4f8b\u5316\u6309\u94ae


toobar.add(openFile); //\u589e\u52a0\u6309\u94ae\u5230\u5de5\u5177\u680f


JButton openURL = new JButton("\u6253\u5f00\u7f51\u7edc\u5730\u5740");


toobar.add(openURL);


container.add(toobar, BorderLayout.NORTH); //\u8bbe\u7f6e\u5de5\u5177\u680f




openFile.addActionListener(new ActionListener() { //\u6253\u5f00\u6587\u4ef6\u6309\u94ae\u4e8b\u4ef6\u5904\u7406



public void actionPerformed(ActionEvent event) {




JFileChooser fileChooser = new JFileChooser(); //\u5b9e\u4f8b\u5316\u6587\u4ef6\u9009\u62e9\u5668




fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);//\u8bbe\u7f6e\u6587\u4ef6\u6253\u5f00\u6a21\u5f0f\u4e3a\u4ec5\u6253\u5f00\u6587\u4ef6




int result = fileChooser.showOpenDialog(VideoPlayDemo.this);//\u663e\u793a\u5bf9\u8bdd\u6846




if (result == JFileChooser.APPROVE_OPTION) { //\u5f97\u5230\u7528\u6237\u884c\u4e3a




mediaFile = fileChooser.getSelectedFile(); //\u5f97\u5230\u9009\u62e9\u7684\u6587\u4ef6




}



if (mediaFile != null) {




try {





fileURL = mediaFile.toURL(); //\u5f97\u5230\u6587\u4ef6\u7684URL\u5730\u5740




} catch (MalformedURLException ex) {






ex.printStackTrace(); //\u8f93\u51fa\u9519\u8bef\u4fe1\u606f






showMessage("\u6253\u5f00\u9519\u8bef"); //\u663e\u793a\u9519\u8bef\u4fe1\u606f




}




startPlayer(fileURL.toString()); //\u5f00\u59cb\u64ad\u653e\u6253\u5f00\u7684\u6587\u4ef6




}


}


});




openURL.addActionListener(new ActionListener() { //\u6253\u5f00URL\u6309\u94ae\u4e8b\u4ef6\u5904\u7406


public void actionPerformed(ActionEvent event) {


String addressName =JOptionPane.showInputDialog(VideoPlayDemo.this, "\u8f93\u5165URL\u5730\u5740");


if (addressName != null)


startPlayer(addressName); //\u5f00\u59cb\u64ad\u653e\u6253\u5f00\u7684URL


}


});



Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE);




setSize(300, 200); //\u8bbe\u7f6e\u7a97\u53e3\u5927\u5c0f


setVisible(true); //\u8bbe\u7f6e\u7a97\u53e3\u4e3a\u53ef\u89c6


setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //\u5173\u95ed\u7a97\u53e3\u65f6\u9000\u51fa\u7a0b\u5e8f

}

//\u521d\u59cb\u5316\u64ad\u653e\u5668

public void startPlayer(String mediaLocation) {

if (player != null)

//\u5982\u679c\u64ad\u653e\u5668\u975e\u7a7a\u5219\u79fb\u53bb\u5148\u524d\u7684\u64ad\u653e\u5668\u7ec4\u4ef6

if (visualMedia != null)

container.remove(visualMedia); //\u5982\u679c\u5bf9\u8c61visualMedia\u975e\u7a7a\u5219\u79fb\u53bb

if (mediaControl != null) {

container.remove(mediaControl); //\u5982\u679c\u5bf9\u8c61mediaControl\u975e\u7a7a\u5219\u79fb\u53bb

player.close(); //\u5173\u95ed\u64ad\u653e\u5668

}

MediaLocator mediaLocator = new MediaLocator(mediaLocation); //\u5a92\u4f53\u5b9a\u4f4d\u5668

if (mediaLocator == null) {

showMessage("\u6253\u5f00\u6587\u4ef6\u9519\u8bef"); //\u663e\u793a\u9519\u8bef\u4fe1\u606f

return;

}

try {

player = Manager.createPlayer(mediaLocator); //\u5f97\u5230\u64ad\u653e\u5668\u5b9e\u4f8b

player.addControlle


\u201c\u6267\u884c\u7684\u7a0b\u5e8f\u201d \u6587\u4ef6\u8def\u5f84
//\u6ce8\u610f\u4e00\uff1a\u7a0b\u5e8f\u7684\u8def\u5f84\u8981\u6253\u5f15\u53f7\uff0c\u6211\u7684\u8fc5\u96f7\u770b\u770b\u5728f\u76d8 \uff0c\u6587\u4ef6\u5728e\u76d8\u3002
//\u6ce8\u610f\u4e8c:\u7a0b\u5e8f\u548c\u6587\u4ef6\u5939\u8def\u5f84\u4e2d\u95f4\u6709\u4e2a\u7a7a\u683c.
\u6839\u636e\u4e0b\u9762\u7684\u4ee3\u7801\u81ea\u5df1\u4fee\u6539\u5427
Runtime.getRuntime().exec("\"f:\\Program Files (x86)\\Thunder Network\\Xmp\\Program\\XMP.exe\" e:\\mp4\\high\u6b4c.mp4");

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();
}

}

扩展阅读:x86国产cpu ... 国产任天堂switch手柄 ... iphonex日本 ... java实现在线播放 ... 欧洲vpswindows直播抖音 ... jquerymobile日本ad ... 人人播放器mac版 ... 00后中专技校在线观看 ... javascript免费网站 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网