论坛首页 Java企业应用论坛

JMF能否扩展支持除WAV外的格式

浏览 3700 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-09-21  
近来在写一个MP3解析及播放的功能,使用JMF实现;
现在发现JMF本身支持的格式有局限,只能支持wav格式,对44.1KHz的MP3不能正常解码,这个就有点让我费解,mp3都是这么广泛接受许可的标准和协议,为什么不支持呢,或者是sun在被Oracle后不再致力于更新这个library?
不知道现在有没有已扩展的JMF lib或者其他可替代品,有的话就可喜了。
谢谢关注。

下面附上JMF播放代码:
//下载JMF后加入jar,引入以下class
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.RealizeCompleteEvent;
	private void playTheMP3(File file) {
		final Player dualPlayer;
		try {
			if(file.getAbsolutePath().endsWith("mp3")){
				//mp3 file will invoke system default player to play
				System.out.println("system player is invoked.");
				Runtime.getRuntime().exec("cmd.exe /c" + file.getAbsolutePath()); 
				return;
			}
                        //这里开始是JMF处理WAV文件,之前的MP3放开运行的话,不支持44.1Kz
			String locateString = "file:///" + file.getAbsolutePath();// + fileName;
			dualPlayer = Manager.createPlayer(new MediaLocator(locateString));
			dualPlayer.addControllerListener(new ControllerListener(){

				@Override
				public synchronized void controllerUpdate(ControllerEvent event) {
					if(event instanceof RealizeCompleteEvent){
						Component comp;
						if((comp = dualPlayer.getVisualComponent()) != null){
							add("South", comp);
						}
						validate();
					}
				}
				
			});
			dualPlayer.start();
		} catch (NoPlayerException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
   发表时间:2010-09-21  
JMF MP3 Plugin
楼主放狗没?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics