展开全部

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; // 视频显示32313133353236313431303231363533e4b893e5b19e31333238666339组件

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

}

}

本回答由提问者推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java怎么播放视频_如何播放视频文件 java相关推荐

  1. 腾讯视频如何下载视频_腾讯视频如何做明星装扮

    这篇文章主要说的是腾讯视频如何下载视频_腾讯视频如何做明星装扮,希望可以帮助大家.腾讯视频时刻为您推荐最新最火的视频,精彩不断随时观看.支持各种画质的下载,没网也能享受高视觉的享受,让生活的每一刻都不 ...

  2. Java和vue实现音乐播放器_躁!DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  3. java去除音频无声_如何给视频消音 把视频中的声音去掉只留视频画面

    视频声音很杂不好听我想去掉,给视频消音简单实现.我们这里讲的给视频消音,把视频中的声音去掉而已,如果大家想给视频消音后再添加新的背景音乐,请参考狸窝另外一个解决方案:http://www.leawo. ...

  4. uniapp怎么调起摄像头拍视频_抖音视频怎么拍?我们总结了10个手机视频拍摄小技巧...

    抖音的很多功能与小咖秀类似,但不同的是,抖音用户可以通过视频拍摄的快慢.视频编辑和特效等技术让作品更具创造性,而不是简单地对嘴型. 抖音短视频的10个拍摄技巧,帮助你方便.快捷地制作出更加优质的短视频 ...

  5. python批量下载bilibili视频_关于bilibili视频下载的一些小思路

    关于bilibili视频下载的一些小思路 (基于b站官方接口实现) 由于B站近期某些蛋(chou)疼(feng)表现,某十八线女团不知名野站(我无聊作死的地方)为了稳健,需要备份一份所有视频.然而市面 ...

  6. python樱花制作教程视频_大型Python视频资料,阿里巴巴推荐,用Python画一棵漂亮的樱花树...

    原标题:大型Python视频资料,阿里巴巴推荐,用Python画一棵漂亮的樱花树 对于初学者想更轻松的学好Python开发,爬虫技术,Python数据分析,人工智能等技术,这里也给大家准备了一套系统教 ...

  7. java.policy无法修改_如何配置Policy文件进行Java安全策略的设置

    中国人最喜欢访问的网站 只要注册ofo就送你10块钱,还等什么,快来注册吧 Java语言具有完善的安全框架,从编程语言.编译器.解释程序到Java虚拟机,都能确保Java系统不被恶意的代码或敌对的编译 ...

  8. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  9. java底层原理书籍_阿里面试题:Java中this和super关键字的底层实现原理

    知道的越多,不知道的就越多,业余的像一棵小草! 编辑:业余草 来源:https://www.xttblog.com/?p=5028 B 站:业余草 最近一个粉丝加我说,接到了阿里的面试,问问我阿里会面 ...

  10. java 模仿支付成功_我的大学到研究生自学 Java 之路,过程艰辛,不放弃,保持热情,最终发现我是这样拿到大厂 offer 的!...

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:本人真实经历:面试了20家大厂之后,发现这样介绍项目经验,显得项目很牛逼! 这一部分,其实,以前在自己的公众号写 ...

最新文章

  1. Python的yield关键字
  2. select/poll/epoll 与 /dev/poll
  3. java zip文件操作,java 关于 zip 文件 的 基本操作
  4. 快速排序算法的简短描述
  5. 在nodejs中操作mongodb
  6. 崩坏3人物模型详解—是次世代还是手绘?
  7. 最简单的爬虫代码 python_最精简的爬虫 --仅需4行代码(python)
  8. MySQL创建视图的语法格式,MySQL如何创建视图
  9. atitit.提升性能AppCache
  10. 【MATLAB imagesc 背景色】
  11. 计算机程序设计员技能试题,计算机程序设计员试题及答案[1]
  12. Kevgir靶机渗透——弱口令爆破
  13. android4.4中添加方案,Android4.0-4.4 添加实体按键振动支持的方法(java + smali版本)
  14. c语言里什么叫double,c语言double什么意思
  15. ServiceNow在中国还有没有模仿者?
  16. c# 微信公众号开发之自定义菜单栏
  17. MyBatis面试题1
  18. 微星电脑不能u盘引导linux,华硕笔记本u盘重装微星怎么启动不了系统系统系
  19. 极客学院mysql教程_干货分享 速成必备视频 六天带你玩转MySQL视频教程 数据库......
  20. C语言优惠套餐推荐系统

热门文章

  1. word文档怎么给数字加千分符_如何在word中设置数字的千位分隔符?两种方法轻松搞定...
  2. 机器人动力学建模之牛顿欧拉法推导
  3. python如何让输出数据对齐、int类型和字符串都有_Python基础-基本数据类型之数字、字符串...
  4. 支付宝小程序框架分析
  5. 微信小程序-colorUI组件库
  6. matlab卷积动画实现
  7. 降本增效促提升---豪越创新企业后勤管理模式
  8. 基于Java实现的天气预报APP安卓项目MyWeather
  9. 路由器带硬盘+文件服务器,带硬盘路由器推荐,几款硬盘路由器产品PK
  10. camera常见问题和调试方法