導航:首頁 > 編程語言 > java媒體播放器

java媒體播放器

發布時間:2022-11-01 08:52:17

❶ 怎麼用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");

閱讀全文

與java媒體播放器相關的資料

熱點內容
我的世界國際服為什麼登不進伺服器 瀏覽:994
微盟程序員老婆 瀏覽:928
intellij創建java 瀏覽:110
java連接odbc 瀏覽:38
啟動修復無法修復電腦命令提示符 瀏覽:359
手機編程是什麼 瀏覽:97
山東移動程序員 瀏覽:163
蘇州java程序員培訓學校 瀏覽:476
單片機液晶驅動 瀏覽:854
魔拆app里能拆到什麼 瀏覽:130
新預演算法的立法理念 瀏覽:144
wdcpphp的路徑 瀏覽:134
單片機p0口電阻 瀏覽:926
瀏覽器中調簡訊文件夾 瀏覽:594
五菱宏光空調壓縮機 瀏覽:68
為什麼app佔用幾百兆 瀏覽:680
自動解壓失敗叫我聯系客服 瀏覽:484
易語言新手源碼 瀏覽:457
oa伺服器必須有固定ip地址 瀏覽:45
傳奇源碼分析是什麼 瀏覽:270