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

📄 media.java

📁 一个简单的socket聊天工具,实现在发送文件和语音聊天等功能,还能聊天的同时听音乐,分服务器端和客户端两部分
💻 JAVA
字号:
/*
 * Created on 2006-3-10
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author 之诸暇
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
import javax.media.*; 
import javax.swing.JFrame;
import javax.swing.JPanel;

import java.awt.*; 
import java.awt.event.*;
class Media extends JPanel implements ActionListener, 
ControllerListener, ItemListener 
{ 
Player player; 
Component vc, cc; 
boolean first = true, loop = false; 
String currentDirectory; 
JFrame myframe;
Media (JFrame frame) 
{  
 myframe = frame;
 setSize(200,20);
} 
public void actionPerformed (ActionEvent e) 
{ 
	String str = e.getActionCommand();
if (str.equals ("退出")) 
{ 
// 调用dispose以便执行windowClosed  
	if (player != null) 
		player.close ();
	setVisible(false);
	return;
} 
FileDialog fd = new FileDialog (myframe, "打开媒体文件", 
FileDialog.LOAD); 
fd.setDirectory (currentDirectory); 
fd.show (); 
// 如果用户放弃选择文件,则返回 
if (fd.getFile () == null) return; 
currentDirectory = fd.getDirectory (); 
if (player != null) 
player.close (); 
setVisible(true);
try 
{ 
player = Manager.createPlayer (new MediaLocator ("file:" + fd.getDirectory () + fd.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; 
player.addControllerListener (this); 
player.prefetch (); 
} 
public void controllerUpdate (ControllerEvent e) 
{ 
// 调用player.close()时ControllerClosedEvent事件出现。 
// 如果存在视觉部件,则该部件应该拆除(为一致起见, 
// 我们对控制面板部件也执行同样的操作) 
if (e instanceof ControllerClosedEvent) 
{ 
if (vc != null) 
{ 
remove (vc); 
vc = null; 
} 
if (cc != null) 
{ 
remove (cc); 
cc = 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) 
{ 
vc = player.getVisualComponent (); 
if (vc != null) 
add (vc); 
cc = player.getControlPanelComponent (); 
if (cc != null) {
add(cc); 
cc.setSize(180,20);
}
} 
} 
public void itemStateChanged (ItemEvent e) 
{ 
loop = !loop; 
} 
 
// 不执行背景清除操作,以免控制面板部件闪烁 


}

⌨️ 快捷键说明

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