网站建设资讯

NEWS

网站建设资讯

java视频播放代码 java web播放视频

求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:求一段代码,很简单,运行后直接播放一个小视频,播放完后(或者自行定时)立刻自动关闭。

下载JMF(java media framework)

下面是一个例子

import java.awt.BorderLayout;

import java.awt.Component;

import java.net.MalformedURLException;

import java.net.URL;

import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.Player;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

public class MediaPlayer extends javax.swing.JPanel {

public MediaPlayer(URL mediauUrl) {       

initComponents();

setLayout(new BorderLayout());

try {

Player mediaPlayer = Manager.createRealizedPlayer(new MediaLocator(mediauUrl));

Component video = mediaPlayer.getVisualComponent();

Component control = mediaPlayer.getControlPanelComponent();

if (video != null) {

add(video, BorderLayout.CENTER);          // place the video component in the panel

}

add(control, BorderLayout.SOUTH);            // place the control in  panel

mediaPlayer.start();

} catch (Exception e) {

}

}

private void initComponents() {

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getTopLevelAncestor());

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 720, Short.MAX_VALUE)

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 480, Short.MAX_VALUE)

);

}

public static void main(String[] args) {

JFileChooser fileChooser = new JFileChooser();

fileChooser.showOpenDialog(null);

URL mediaUrl = null;

try {

mediaUrl = fileChooser.getSelectedFile().toURI().toURL();

} catch (MalformedURLException ex) {

System.out.println(ex);

}

JFrame mediaTest = new JFrame("Movie Player");

mediaTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

MediaPlayer mediaPanel = new MediaPlayer(mediaUrl);

mediaTest.add(mediaPanel);

mediaTest.setSize(800, 700); // set the size of the player

mediaTest.setLocationRelativeTo(null);

mediaTest.setVisible(true);

}

}

如何播放视频文件 java

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import javax.swing.*;

import javax.media.*;

// 视频播放程序

public class VideoPlayDemo extends JFrame {

private Player player; // 播放器对象

private Component visualMedia; // 视频显示组件

private Component mediaControl; // 视频播放控制组件

private Container container; // 主容器

private File mediaFile; //媒体文件

private URL fileURL; //媒体文件URL地址

public VideoPlayDemo() { // 构造函数

super("视频播放程序"); //调用父类构造函数

container = getContentPane(); //得到窗口容器

JToolBar toobar = new JToolBar(); //实例化工具栏

JButton openFile = new JButton("打开媒体文件"); //实例化按钮

toobar.add(openFile); //增加按钮到工具栏

JButton openURL = new JButton("打开网络地址");

toobar.add(openURL);

container.add(toobar, BorderLayout.NORTH); //设置工具栏

openFile.addActionListener(new ActionListener() { //打开文件按钮事件处理

public void actionPerformed(ActionEvent event) {

JFileChooser fileChooser = new JFileChooser(); //实例化文件选择器

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);//设置文件打开模式为仅打开文件

int result = fileChooser.showOpenDialog(VideoPlayDemo.this);//显示对话框

if (result == JFileChooser.APPROVE_OPTION) { //得到用户行为

mediaFile = fileChooser.getSelectedFile(); //得到选择的文件

}

if (mediaFile != null) {

try {

fileURL = mediaFile.toURL(); //得到文件的URL地址

} catch (MalformedURLException ex) {

ex.printStackTrace(); //输出错误信息

showMessage("打开错误"); //显示错误信息

}

startPlayer(fileURL.toString()); //开始播放打开的文件

}

}

});

openURL.addActionListener(new ActionListener() { //打开URL按钮事件处理

public void actionPerformed(ActionEvent event) {

String addressName =JOptionPane.showInputDialog(VideoPlayDemo.this, "输入URL地址");

if (addressName != null)

startPlayer(addressName); //开始播放打开的URL

}

});

Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE);

setSize(300, 200); //设置窗口大小

setVisible(true); //设置窗口为可视

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序

}

//初始化播放器

public void startPlayer(String mediaLocation) {

if (player != null)

//如果播放器非空则移去先前的播放器组件

if (visualMedia != null)

container.remove(visualMedia); //如果对象visualMedia非空则移去

if (mediaControl != null) {

container.remove(mediaControl); //如果对象mediaControl非空则移去

player.close(); //关闭播放器

}

MediaLocator mediaLocator = new MediaLocator(mediaLocation); //媒体定位器

if (mediaLocator == null) {

showMessage("打开文件错误"); //显示错误信息

return;

}

try {

player = Manager.createPlayer(mediaLocator); //得到播放器实例

player.addControlle


当前名称:java视频播放代码 java web播放视频
文章网址:http://cdweb.net/article/hidhii.html