论坛首页 Java企业应用论坛

(十八)用JAVA编写MP3解码器——迷你播放器

浏览 15785 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-09-17   最后修改:2010-09-17
我刚把播放进度显示和播放顺序的功能完成,正在做测试.
快进的问题确实正在考虑,打算和google播放器一样,拖动或者点击进度条快进.这样需要你那边加个从某帧开始播放的方法.当然了,如果有别的可替代方案也可以.
另:建议加入对网络文件的缓存.否则每次听都要重新下载一次.并开放缓存目录的配置接口.方便我这里设置.
0 请登录后投票
   发表时间:2010-09-22  
楼主..
在 http://jmp123.sourceforge.net/ 找不到源代码...
只有jar文件.
是不是需要自己反编译啊.
0 请登录后投票
   发表时间:2010-09-27  
i2534 写道
我刚把播放进度显示和播放顺序的功能完成,正在做测试.
快进的问题确实正在考虑,打算和google播放器一样,拖动或者点击进度条快进.这样需要你那边加个从某帧开始播放的方法.当然了,如果有别的可替代方案也可以.
另:建议加入对网络文件的缓存.否则每次听都要重新下载一次.并开放缓存目录的配置接口.方便我这里设置.

随机播放定位今后在class Header中加入;
网络文件磁盘缓存容易让人觉得是产生的垃圾文件,可能增加一个后台下载的功能比较好。等有空的时候完善这些功能吧。这段时间比较忙,还要把有些代码检查修改一下。
0 请登录后投票
   发表时间:2010-09-27  
enefry 写道
楼主..
在 http://jmp123.sourceforge.net/ 找不到源代码...
只有jar文件.
是不是需要自己反编译啊.

http://jmp123.sourceforge.net/点击“Download”有源文件下载,是以前的版本,最新的源文件还没传上去。
0 请登录后投票
   发表时间:2010-09-27  
lfp001 写道
enefry 写道
楼主..
在 http://jmp123.sourceforge.net/ 找不到源代码...
只有jar文件.
是不是需要自己反编译啊.

http://jmp123.sourceforge.net/点击“Download”有源文件下载,是以前的版本,最新的源文件还没传上去。

感谢楼主分享源代码..
不过前几天确实只下载到 jar文件...
点download就直接弹出下载.
现在可以下到源代码了
0 请登录后投票
   发表时间:2010-09-29   最后修改:2010-09-29
lfp001 写道
i2534 写道
我刚把播放进度显示和播放顺序的功能完成,正在做测试.
快进的问题确实正在考虑,打算和google播放器一样,拖动或者点击进度条快进.这样需要你那边加个从某帧开始播放的方法.当然了,如果有别的可替代方案也可以.
另:建议加入对网络文件的缓存.否则每次听都要重新下载一次.并开放缓存目录的配置接口.方便我这里设置.

随机播放定位今后在class Header中加入;
网络文件磁盘缓存容易让人觉得是产生的垃圾文件,可能增加一个后台下载的功能比较好。等有空的时候完善这些功能吧。这段时间比较忙,还要把有些代码检查修改一下。


加入后台下载时,请给我一个添加进度监听的接口.
另:mp3 tag的读取是在每个文件读取header的时候,这时候最好能在此header中保留此tag,并且tag开放get方法.
另:为了加入音量控制或其他控制,我需要在Audio中添加:

public static Control getControl(Control.Type type) {
		if (objSDL != null && objSDL.isActive()) {
			return objSDL.getControl(type);
		}
		return null;
	}
 
0 请登录后投票
   发表时间:2010-10-08  
我今天在调试gui时候发现一个bug,可能是由于Header类中的静态变量引起的.
测试代码如下:
	public static void main(String[] args) {
		try {
			new Thread(new PlayingThread("F:\\music\\Dragon Dance.mp3"))
					.start();
			Thread.sleep(10000);
			new Thread(new PlayingThread("F:\\music\\你不知道的事.mp3")).start();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

会出现第二首mp3的帧数和长度不改变,仍旧保持为第一个mp3.并且printHeaderInfo只会被调用一次.
另,请在Audio加入
public static Control getControl(Type type) {
if (objSDL != null && objSDL.isActive() && objSDL.isControlSupported(type)) {
return objSDL.getControl(type);
}
return null;
}
方法.以方便获取当前DataLine的Control
0 请登录后投票
论坛首页 Java企业应用版

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