问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求JAVA视频播放器代码

发布网友 发布时间:2022-04-23 14:06

我来回答

5个回答

热心网友 时间:2023-09-17 14:36

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.ControllerClosedEvent;
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;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class JMFMediaPlayer extends JFrame implements ActionListener,
ControllerListener, ItemListener {
// JMF的播放器
Player player;
// 播放器的视频组件和控制组件
Component vedioComponent;
Component controlComponent;
// 标示是否是第一次打开播放器
boolean first = true;
// 标示是否需要循环
boolean loop = false;
// 文件当前目录
String currentDirectory;
// 构造方法
public JMFMediaPlayer(String title) {
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
// 用户点击窗口系统菜单的关闭按钮
// 调用dispose以执行windowClosed
dispose();
}
public void windowClosed(WindowEvent e){
if (player != null){
// 关闭JMF播放器对象
player.close();
}
System.exit(0);
}
});
// 创建播放器的菜单
JMenu fileMenu = new JMenu("文件");
JMenuItem openMemuItem = new JMenuItem("打开");
openMemuItem.addActionListener(this);
fileMenu.add(openMemuItem);
// 添加一个分割条
fileMenu.addSeparator();
// 创建一个复选框菜单项
JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循环", false);
loopMenuItem.addItemListener(this);
fileMenu.add(loopMenuItem);
fileMenu.addSeparator();
JMenuItem exitMemuItem = new JMenuItem("退出");
exitMemuItem.addActionListener(this);
fileMenu.add(exitMemuItem);

JMenuBar menuBar = new JMenuBar();
menuBar.add(fileMenu);
this.setJMenuBar(menuBar);
this.setSize(200, 200);

try {
// 设置界面的外观,为系统外观
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
} catch (Exception e) {
e.printStackTrace();
}
this.setVisible(true);
}
/**
* 实现了ActionListener接口,处理组件的活动事件
*/
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("退出")) {
// 调用dispose以便执行windowClosed
dispose();
return;
}
FileDialog fileDialog = new FileDialog(this, "打开媒体文件", FileDialog.LOAD);
fileDialog.setDirectory(currentDirectory);
fileDialog.setVisible(true);
// 如果用户放弃选择文件,则返回
if (fileDialog.getFile() == null){
return;
}
currentDirectory = fileDialog.getDirectory();
if (player != null){
// 关闭已经存在JMF播放器对象
player.close();
}
try {
// 创建一个打开选择文件的播放器
player = Manager.createPlayer(new MediaLocator("file:"
+ fileDialog.getDirectory() + fileDialog.getFile()));
} catch (java.io.IOException e2) {
System.out.println(e2);
return;
} catch (NoPlayerException e2) {
System.out.println("不能找到播放器.");
return;
}
if (player == null) {
System.out.println("无法创建播放器.");
return;
}
first = false;
this.setTitle(fileDialog.getFile());
// 播放器的控制事件处理
player.addControllerListener(this);
// 预读文件内容
player.prefetch();
}
/**
* 实现ControllerListener接口的方法,处理播放器的控制事件
*/
public void controllerUpdate(ControllerEvent e) {
// 调用player.close()时ControllerClosedEvent事件出现。
// 如果存在视觉部件,则该部件应该拆除(为一致起见,
// 我们对控制面板部件也执行同样的操作)
if (e instanceof ControllerClosedEvent) {
if (vedioComponent != null) {
this.getContentPane().remove(vedioComponent);
this.vedioComponent = null;
}
if (controlComponent != null) {
this.getContentPane().remove(controlComponent);
this.controlComponent = null;
}
return;
}
// 如果是媒体文件到达尾部事件
if (e instanceof EndOfMediaEvent) {
if (loop) {
// 如果允许循环,则重新开始播放
player.setMediaTime(new Time(0));
player.start();
}
return;
}
// 如果是播放器预读事件
if (e instanceof PrefetchCompleteEvent) {
// 启动播放器
player.start();
return;
}
// 如果是文件打开完全事件,则显示视频组件和控制器组件
if (e instanceof RealizeCompleteEvent) {
vedioComponent = player.getVisualComponent();
if (vedioComponent != null){
this.getContentPane().add(vedioComponent);
}
controlComponent = player.getControlPanelComponent();
if (controlComponent != null){
this.getContentPane().add(controlComponent, BorderLayout.SOUTH);
}
this.pack();
}
}

// 处理“循环”复选框菜单项的点击事件
public void itemStateChanged(ItemEvent e) {
loop = !loop;
}
public static void main(String[] args){
new JMFMediaPlayer("JMF媒体播放器");
}
}

试试吧,我这里运行正常

热心网友 时间:2023-09-17 14:37

可以的,到官网视频课程页面下载即可,不用一下在全下下来,如果是基础可以先去B站上看老杜的新班基础教程,先把Java环境配置了。动力节点的java基础教程159集,20年最新升级为全新的java基础316集,可以通过蛙课网获取哦
要好的培训机构,那推荐,专门培训JAVA的,数十年办学经验,目前它们的火热招募学员中,快点去看看

热心网友 时间:2023-09-17 14:37

你看一下这个可行不,有如下功能:
搜歌、下歌、写真、歌词等等

界面效果

热心网友 时间:2023-09-17 14:38

现在学习Java的平台有很多,B站或者是腾讯课堂都是不错的,我们在B站分享了很多经典的Java视频教程,都是开源的,你可以去看看。

热心网友 时间:2023-09-17 14:38

// JMF的播放器
Player player;
// 播放器的视频组件和控制组件
Component vedioComponent;
Component controlComponent;
// 标示是否是第一次打开播放器
boolean first = true;
// 标示是否需要循环
boolean loop = false;
// 文件当前目录
String currentDirectory;
// 构造方法
public JMFMediaPlayer(String title) {
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
// 用户点击窗口系统菜单的关闭按钮
// 调用dispose以执行windowClosed
dispose();
}
public void windowClosed(WindowEvent e){
if (player != null){
// 关闭JMF播放器对象
player.close();
}
System.exit(0);
}
});
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
修复征信是不是真的? 市面上征信修复公司可靠吗? 征信修复公司是真是假,真的可以修复吗? Emulex FC HBA卡 皮肤毛囊炎怎样治 银行自动扣款什么原因 银行什么情况自动扣款 贷款自动扣款什么意思 粤省事办理准生证需要多久 粤省事办理准生证步骤 为什么于嘉说山猫队和网队的比赛,少了易建联山猫进攻都没那么流畅了... 要怎样才能养活小金鱼 java实现在浏览器里面播放视频文件 大神们给点提示啊 谢谢 用java如何做一个视频播放器 java web在播放视频时无法显示画面,但是能够听见声音。 用java做音视频播放器 javaweb怎么实现在线视频播放 java:求一段代码,很简单,运行后直接播放一个小视频,播放完后(或者自行定时)立刻自动关闭。 怎么使用java在网页上播放视频 初学了一段时间Java。想做一个应用程序,程序只需要播放一个本地视频,MP4格式,求教怎么做 java播放视频除了用jmf还有什么方法可以实现 java网络怎么实现在线视频播放 java如何设置本地播放器播放指定文件夹视频并循环播放? JAVA中怎么样实现播放视频?? java怎样实现打开视频文件 怎么用java/web代码播放本地视频 Javase怎么实现拖入视频自动播放视频 大家好,想问一下他群发通讯录是不是指通讯录里面的好友,通讯录里面没有的但是有通话记录会不会群发? 苹果手机可以群发短信吗?发短信给自己通讯录全部好友怎么发 个人手机通讯录及设备信息被盗,请问对方可以对我的所有好友群发隐私吗... 微信里如何一次性把消息直接发送给通讯录里的所有好友的步骤?_百度... 怎么养活金鱼 我想在线预览视频,java后台的response如何设置才能直接播放而非下载呢 怎样把金鱼养活? 谁知道如何用纯JAVA代码播放视频文件(可以播放一种视频文件,如mp4,就可以了) 怎样能养活金鱼? 怎么养金鱼?? 金鱼如何养活 网红刷14万分是多少钱 怎样养活金鱼哇、急 金鱼该怎么养 13万抖币是多少钱 抖音41万抖币是多少钱 金鱼怎么才能养活? 15O万抖币多少人民币? 18万抖币是多少人民币 414万抖音币是多少人民币? 有知道的吗:12.7万抖音币换多少人民币呢? 44.7万抖币可以换多少人民币? 锦州温泉度假村哪里好? 锦州大润发附近的温泉有哪些