⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testmedia.java

📁 这是一个基于JMF的媒体播放器
💻 JAVA
字号:
package testmedia;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FileDialog;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.RealizeCompleteEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestMedia {

	Player videoPlayer;

	JFrame jf;
	
	JPanel jp;

	MenuBar mb;

	Menu m;

	MenuItem mi;

	FileDialog fd;

	String strURL;
	
	Component comp1,comp2;

	public TestMedia() {

		jf = new JFrame("播放器测试");
		jf.setSize(300, 300);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);
		jf.validate();
		
		jp = new JPanel();
		jp.setLayout(new BorderLayout());

		mb = new MenuBar();

		m = new Menu("File");

		mi = new MenuItem("Open...");
		mi.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (e.getActionCommand().equals("Open...")) {
					try {
						fd = new FileDialog(jf, "choose video file",
								FileDialog.LOAD);
						fd.setVisible(true);
						strURL = fd.getDirectory() + fd.getFile();
						System.out.println(strURL);
						
						if(videoPlayer != null){
							videoPlayer.close();
							jp.remove(comp1);
							jp.remove(comp2);
						}
						
						videoPlayer = Manager.createPlayer(new MediaLocator(
								"file:/" + strURL));
						videoPlayer.addControllerListener(new ControllerListener() {
									public synchronized void controllerUpdate(
											ControllerEvent event) {
                                        
										if (event instanceof RealizeCompleteEvent) {
											if ((comp1 = videoPlayer.getVisualComponent()) != null){ 
												jp.add(comp1,BorderLayout.CENTER);
											}
											if ((comp2 = videoPlayer.getControlPanelComponent()) != null) {
												jp.add(comp2,BorderLayout.SOUTH);
											}
											jp.validate();
										}
									}
								});
						videoPlayer.start();
					} catch (Exception ex) {
						ex.printStackTrace();
					}
				}
			}
		});

		m.add(mi);
		mb.add(m);		
		jf.setMenuBar(mb);
		jf.add(jp,BorderLayout.CENTER);

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TestMedia tm = new TestMedia();

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -