b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Java的JMF实现视频播放器

电脑杂谈  发布时间:2019-05-07 20:23:45  来源:网络整理

java本地视频播放器_地笼捕小龙虾视频播放_java jmf播放rtsp视频

java本地视频播放器java本地视频播放器

str;

Thread mythread;

Choice choice;

Component visualCompoment,controlCompoment,progressBar;

String mediaFile;

URL mediaURL,codeBase;

Frame frame;

public void init()

{

str='music.MPE';

mythread=new Thread(this);

choice=new Choice();

choice.add('music01.MPG');

choice.add('music02.avi');

choice.add('music03.avi');

choice.addItemListener(this);

frame=new Frame('Movie System');

frame.setSize(640,480);

frame.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

if(player!=null)

{

player.stop();

player.deallocate();

}

frame.setVisible(false);

System.exit(0);

}

});

add(choice);

}

public void stop()

{

if(player!=null)

{

player.stop();

}

}

public synchronized void controllerUpdate(ControllerEventevent)

{

player.getDuration();

if(event instanceof RealizeCompleteEvent)

{

if((visualCompoment=player.getVisualComponent())!=null)

{

frame.add('Center',visualCompoment);

}

if((controlCompoment=player.getControlPanelComponent())!=null)

if(visualCompoment!=null)

frame.add('South',controlCompoment);

else

frame.add('Center',controlCompoment);

frame.validate();

frame.pack();

}

else if(event instanceof PrefetchCompleteEvent)

java本地视频播放器_java jmf播放rtsp视频_地笼捕小龙虾视频播放

{

player.start();

}

}

public void itemStateChanged(ItemEvent e)

{

str=choice.getSelectedItem();

if(player==null) {}

else

{

player.stop();

player.deallocate();

}

frame.removeAll();

frame.setVisible(true);

frame.setBounds(300,100,150,100);

frame.validate();

if(!(mythread.isAlive()))

{

mythread=new Thread(this);

}

try{

mythread.start();

}

catch(Exception ee) {}

}

public synchronized void run()

{

try{

mediaURL=new URL(codeBase,str);

player=Manager.createPlayer(mediaURL);

player.getDuration();

if(player!=null)

{

player.addControllerListener(this);

}

else

{

System.out.println('failed to creat player for'+mediaURL);

}

}

catch(MalformedURLException e)

{

System.out.println('URL for'+mediaFile+'is invalid');

}

catch(IOException e)

{

System.out.println('URL for'+mediaFile+'is invalid');

}

catch(NoPlayerException e)

{

System.out.println('Can't find a player'+mediaURL);

}

if(player!=null)

{

player.prefetch();

}

}

地笼捕小龙虾视频播放_java本地视频播放器_java jmf播放rtsp视频

}

下面是另外一个视频播放器程序:

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 implementsActionListener,

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);

}

java本地视频播放器_java jmf播放rtsp视频_地笼捕小龙虾视频播放

});

// 创建播放器的菜单

JMenu fileMenu = new JMenu('文件');

JMenuItem openMemuItem = new JMenuItem('打开');

openMemuItem.addActionListener(this);

fileMenu.add(openMemuItem);

// 添加一个分割条

fileMenu.addSeparator();

// 创建一个复选框菜单项

terminaltypeoptionhandler ttopt = new terminaltypeoptionhandler(termtype, false, false, true, false)。 subject sub = new subject(false, princ, new hashset(), new hashset())。 //每次加上new会循环这个加上的new,进入循环又会加一个new。

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);

}

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播放器对象


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-97007-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...