import java.awt.BorderLayout;
創新互聯公司自2013年起,是專業互聯網技術服務公司,擁有項目成都網站建設、成都做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元連江做網站,已為上家服務,為連江各地企業和個人服務,聯系電話:18980820575
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媒體播放器");
}
}
試試吧,我這里運行正常
在網頁上播放視頻,需要引用打開網頁的那臺電腦上安裝的播放器(一般方式),引用方式為
object....在網上找播放器代碼
或者在你的應用里面,添加FLV播放器,別人打開你的網站就可以播放了,但是好像目前只能支持
FLV,SWF格式的。
這個只要你引用自己背地的MediaPlayer就可以了;代碼:
div id="FlashFile"
object id="player" height="170" width="220"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
param NAME="AutoStart" VALUE="1"
!--是否自動播放--
param NAME="Balance" VALUE="0"
!--調整左右聲道平衡,同上面舊播放器代碼--
param name="enabled" value="-1"
!--播放器是否可人為控制--
param NAME="EnableContextMenu" VALUE="-1"
!--是否啟用上下文菜單--
param NAME="url" value="soft/%=file%"http://源文件路徑
!--播放的文件地址--
param NAME="PlayCount" VALUE="1"
!--播放次數控制,為整數--
param name="rate" value="1"
!--播放速率控制,1為正常,允許小數,1.0-2.0--
param name="currentPosition" value="0"
!--控件設置:當前位置--
param name="currentMarker" value="0"
!--控件設置:當前標記--
param name="defaultFrame" value=""
!--顯示默認框架--
param name="invokeURLs" value="0"
!--腳本命令設置:是否調用URL--
param name="baseURL" value=""
!--腳本命令設置:被調用的URL--
param name="stretchToFit" value="0"
!--是否按比例伸展--
param name="volume" value="50"
!--默認聲音大小0%-100%,50則為50%--
param name="mute" value="0"
!--是否靜音--
param name="uiMode" value="mini"
!--顯示模式:Full顯示全部;mini簡化;None不顯示控制;invisible全部不顯示--
param name="windowlessVideo" value="0"
!--如果是0可以允許全屏,否則只能在窗口中查看--
param name="fullScreen" value="1"
!--開始播放是否自動全屏--
param name="enableErrorDialogs" value="-1"
!--是否啟用錯誤提示報告--
param name="SAMIStyle" value
!--SAMI樣式--
param name="SAMILang" value
!--SAMI語言--
param name="SAMIFilename" value
!--字幕ID--
/object
/div
自己建一個空的記事本 把后綴txt該成html 然后復制下面的代碼
C:\Users\Administrator\Desktop\ddd\MP3\14944729176400128.mp3 把這個路徑該成你的mp3路徑
embed src="C:\Users\Administrator\Desktop\ddd\MP3\14944729176400128.mp3" width="480" height="100"02. loop="false" autostart="false"
/embed
OBJECT id=mPlayer1 classid=CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6 width=220 height=64 type='application/x-oleobject"'
PARAM NAME="URL" VALUE="C:\Users\Administrator\Desktop\ddd\MP3\14944729176400128.mp3"
PARAM NAME="rate" VALUE="1"
PARAM NAME="balance" VALUE="0"
PARAM NAME="currentPosition" VALUE="0"
PARAM NAME="defaultFrame" VALUE=""
PARAM NAME="playCount" VALUE="100"
PARAM NAME="autoStart" VALUE="-1"
PARAM NAME="currentMarker" VALUE="0"
PARAM NAME="invokeURLs" VALUE="-1"
PARAM NAME="baseURL" VALUE=""
PARAM NAME="volume" VALUE="100"
PARAM NAME="mute" VALUE="0"
PARAM NAME="uiMode" VALUE="full"
PARAM NAME="stretchToFit" VALUE="0"
PARAM NAME="windowlessVideo" VALUE="0"
PARAM NAME="enabled" VALUE="-1"
PARAM NAME="enableContextMenu" VALUE="0"
PARAM NAME="fullScreen" VALUE="0"
PARAM NAME="SAMIStyle" VALUE=""
PARAM NAME="SAMILang" VALUE=""
PARAM NAME="SAMIFilename" VALUE=""
PARAM NAME="captioningID" VALUE=""
/OBJECT
javacv基于ffmpeg和opencv等開源音視頻、圖像處理庫,可以支持各種協議的推流,拉流,實時圖像處理,javacv可以解決你的問題,具體請參考javacv教程專欄:網頁鏈接
當前名稱:java視頻播放器代碼 java開發視頻播放器
文章出自:http://vcdvsql.cn/article34/hejcse.html
成都網站建設公司_創新互聯,為您提供App設計、網站設計、品牌網站制作、面包屑導航、搜索引擎優化、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯