❶ 怎么用java实现一个简单的播放器
用java实现播放器 主要用到java里的媒体框架,即JMF, JMF实际上是Java的一个类包。JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支 持,如M-JPEG、H.263、MP3、RTP/RTSP (实时传送协议和实时流转协议)、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format (RMF)等。JMF 2.1.1还支持广受欢迎的媒体类型,如Quicktime、Microsofts AVI和MPEG-1等。此外,JMF 2.1.1软件中包括了一个开放的媒体架构,可使开发人员灵活采用各种媒体回放、捕获组件,或采用他们自己的定制的内插组件。 我当初也做过类似的东西(本科实习时),给你个具体教程链接吧: http://hi..com/samxx8/blog/item/90532ba4d13fcdf69052ee5c.html
❷ java制作播放器的过程,高手进!
/*
*文件名:MediaPlayer.java
*说明:媒体播放器源代码
*/
import javax.media.*;
import java.awt.*;
import java.awt.event.*;
class MediaPlayer extends Frame implements ActionListener,ControllerListener,ItemListener
{
Player player;
Component vc,cc;
boolean first=true, loop =false;
String currentDirectory;
MediaPlayer (String title)
{
super (title);
addWindowListener
(new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{
//用户点击窗口菜单的系统关闭按钮
//调用dispose以执行windowClosed
dispose();
}
public void windowClosed (WindowEvent e)
{
if (player !=null) player.close();
System.exit(0);
}
});
Menu m =new Menu ("文件");
MenuItem mi =new MenuItem ("打开");
mi.addActionListener(this);
m.add(mi);
m.addSeparator();
CheckboxMenuItem cbmi =new CheckboxMenuItem ("循环",false);
cbmi.addActionListener(this);
m.add(cbmi);
m.addSeparator();
mi=new MenuItem("退出");
mi.addActionListener(this);
m.add(mi);
MenuBar mb=new MenuBar();
mb.add(m);
setMenuBar (mb);
setSize (200,200);
setVisible(true);
}
public void actionPerformed (ActionEvent e)
{
if (e.getActionCommand().equals("退出"))
{
dispose();
return;
}
FileDialog fd =new FileDialog(this,"打开媒体文件",FileDialog.LOAD);
fd.setDirectory(currentDirectory);
fd.show();
//如果用户放弃选择文件,则返回
if (fd.getFiled() ==null ) return;
currentDirectory=fd.getDirectory();
if (player!=null)
player.close();
try
{
player=Manager.createPlayer(new MediaLocator ("file:"+ fd.getDirectory()+fd.getField() ));
}
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;
setTitle(fd.getField());
player.addControllerListener(this);
player.prefetch();
}
public void controllerUpdate(ControllerEvent e)
{
if (e instanceof ControllerClosedEvent)
{
if (vc !=null)
{
remove (vc);
vc=null;
}
if (cc !=null)
{
remove (cc);
cc=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)
{
vc=player.getVisualComponent();
if (vc!=null)
add(vc);
cc=player.getControlPanelComponent();
if (cc!=null)
add (cc,BorderLayout.SOUTH);
pack();
}
}
public void itemStateChanged (ItemEvent e)
{
loop=!loop;
}
public void paint (Graphics g)
{
if (first)
{
int w=getSize().width;
int h=getSize().height;
g.setColor(Color.blue);
g.fillRect(0,0,w,h);
Font f=new Font("DialogInput",Font.BOLD,16);
g.getFont(f);
FontMetrics fm =g.getFontMetrics();
int swidth =fm.stringWidth("***欢迎***");
g.setColor(Color.white);
g.drawString("***欢迎***",(w-swidth)/2,(h+getInsets().top)/2);
}
super.paint(g);
}
public void update (Graphics g)
{
paint (g);
}
public static void main (String [] args)
{
new MediaPlayer("媒体播放器1.0");
}
}
你要安装jmf,安装后配置path即可!
具体配置在这http://hi..com/max_zeng/blog/item/410b07d11953a9399a50270e.html
❸ Java 网页流媒体播放器 开发思路
什么项目需要用java实现流媒体播放??
sun没被收购之前自己的官网都不用applet改用flash了,applet是一个事实上已经失败的产品,不建议使用。就算你写的非常好也不是每个浏览器都能运行applet的,难道你让每个用户都装个jre吗。
最重要的是,不管后台是不是java开发,前台网页的播放器没必要用java新写一个吧,WindowsMedia,QuickTime都是成熟的产品,还有现在最流行的flash流媒体播放器,薯仔优酷用的都是这种。网页里装个插件就能用。
你们要是非得自己开发一个我只能说佩服,现在这种东西只有学生练手才会考虑自己做
❹ 如何使用java编写通用影音播放器
楼主水平很高.
不过java的优势是用来做server端, 多媒体处理不是它的特长.
用恰当的工具才能做好恰当的事, 像多媒体这样的'低端'处理, 还是交给Flex这样面向客户端的工具吧.
❺ 求JAVA视频播放器代码
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媒体播放器");
}
}
试试吧,我这里运行正常
❻ 用java编写多媒体播放器的代码
这里是使用runtimegetRuntime().exec调用系统程序的代码
Runtime.getRuntime().exec("C:/Program Files/Windows Media Player/wmplayer.exe");
Runtime.getRuntime().exec("C:/WINDOWS/system32/calc.exe");
这是调用系统播放器,嗯如果调用播放本地文件的话则用exec("","");
例如:Runtime.getRuntime().exec("D:/Program Files/TTPlayer/TTPlayer.exe E:/Kugou/祈求.mp3");