導航:首頁 > 編程語言 > java實現播放視頻播放

java實現播放視頻播放

發布時間:2023-09-14 01:11:15

1. javase怎麼實現拖入視頻自動播放視頻

開啟頁面後則是客戶端和伺服器。
當開啟頁面後則是客戶端和伺服器的第一次交互,通過http協議得到頁面。裡面會有流媒體地址的信息,瀏覽器裡面點擊顯示視頻組件。
將流媒體的地址傳給流媒體播放器,並啟動播放器去請求視頻。這是第二次交互。伺服器端流媒體伺服器發送流給客戶端,就實現了頁面上播放。

2. java課題設計——視頻播放器怎麼製作

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;import javax.swing.*;
import javax.media.*;public class VideoPlayer extends JFrame implements ActionListener,
ControllerListener {
FileDialog fd;
Player player = null;
String name;
String path;
Component comp, vc;
Image image=new ImageIcon("open.GIF").getImage();
MenuBar mb = new MenuBar();
Menu m1 = new Menu("文件");
Menu m2 = new Menu("幫助");
MenuItem mi1 = new MenuItem("打開", new MenuShortcut(KeyEvent.VK_0));
MenuItem mi2 = new MenuItem("關閉");
MenuItem mi3 = new MenuItem("幫助");
JButton open=new JButton(new ImageIcon("open.GIF")); public VideoPlayer() {
super("視屏播放器");
this.setMenuBar(mb);
mb.add(m1);
mb.add(m2);
m1.add(mi1);
mi1.addActionListener(this);
m1.add(mi2);
mi2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
m2.add(mi3);
mi3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,
"Java視屏播放器\n2010年6月9日第一版\n製作人: 李攀");
}
});
this.setLayout(new BorderLayout());
this.setSize(800, 650);
this.setVisible(true);
this.setBackground(Color.BLACK);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} public static void main(String[] args) {
new VideoPlayer();
} public void actionPerformed(ActionEvent e) {
if (e.getSource() == mi1) {
open();
}
} public void open() {
fd = new FileDialog(this, "打開媒體文件", FileDialog.LOAD);
fd.setVisible(true);
path = fd.getDirectory();
name = fd.getFile();
if (!path.equals("") && path != null) {
try {
if (player != null)
player.close();
player = Manager.createPlayer(new MediaLocator("file:" + path
+ name));
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "獲取播放器失敗!");
}
player.addControllerListener(this);
player.prefetch();
player.start();
}
} public void paint(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, 800, 650);
g.setColor(Color.GREEN);
g.setFont(new Font("宋體",Font.BOLD,30));
g.drawString("歡迎使用",340,150);
g.drawImage(image,330,285,image.getWidth(this),image.getHeight(this),this);
}
public void update(Graphics g){
paint(g);
} public synchronized void controllerUpdate(ControllerEvent e) {
if (e instanceof RealizeCompleteEvent) {
if ((comp = player.getControlPanelComponent()) != null) {
vc = player.getVisualComponent();
if (vc != null)
add(vc);
add("South", comp);
comp.setBackground(Color.green);
}
validate();
}
if (e instanceof ControllerClosedEvent) {
if (vc != null) {
remove(vc);
vc = null;
}
if (comp != null) {
remove(comp);
comp = null;
}
return;
}
if (e instanceof EndOfMediaEvent) {
player.setMediaTime(new Time(0));
player.start();
return;
}
}
}
java的視屏播放要用到JMF(java media framework),你自己到網上去下一個嘛,而且那玩意支持的格式少,mpg,mpeg,sun的官方網站說支持AVI但是我試過了好像不行,至於rmvb那些好像不行,要裝解碼器。JMF在安裝的時候要安裝對哦,路徑要選擇對,不然不行,具體下載地址和安裝方法可以網路一下,到處都是

3. 求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媒體播放器");
}
}

試試吧,我這里運行正常

4. 怎麼用java/web代碼播放本地視頻

在後台,java中根據路徑找目錄下所有的視頻文件,然後把名字和url返回到前台,前台顯示列表,點擊後打開播放頁,網上很多flash製作的播放器,嵌入到網頁中並把視頻url傳遞進去就可以了。博客noday.net我若有時間就寫個例子

閱讀全文

與java實現播放視頻播放相關的資料

熱點內容
安卓手機怎麼設置陌生免打擾 瀏覽:807
如何看見自己手機號安卓 瀏覽:120
香煙源碼查詢 瀏覽:774
台達文本編程軟體 瀏覽:718
單片機燒寫器使用視頻 瀏覽:996
拍照哪個app比較好 瀏覽:132
dhcp伺服器不能分配MAC地址 瀏覽:964
java偽隨機數 瀏覽:128
塗色書怎麼解壓 瀏覽:465
三角形圓邊編程 瀏覽:457
手機壓縮文件怎麼壓縮到十兆以下 瀏覽:987
雲主機雲伺服器品牌 瀏覽:345
安卓emulated文件夾如何打開 瀏覽:315
採用fifo頁面置換演算法是 瀏覽:194
如何上網代理伺服器 瀏覽:593
Hro系統源碼 瀏覽:847
寶庫源碼 瀏覽:342
路飛和熊排解壓力 瀏覽:625
php定時更新 瀏覽:357
數控5軸編程培訓一般多久 瀏覽:560