我想从网址播放媒体文件(mp3)。而且我想得到那个mp3文件的长度。 我成功播放文件,但我也想显示SeekBar。为此,我需要知道媒体文件的长度。
我怎样才能做到这一点?
我找到了一种方法,但使用它我不认为它在几秒钟内给了我长度。
URLConnection cn = new URL(mediaUrl).openConnection();
cn.connect();
int length = cn.getContentLength();
我认为它会返回字节。那我可以把它转换成秒吗? 或者任何人都知道其他方式?
答案 0 :(得分:1)
检查getHeaderFields()方法,然后检查是否有包含长度的响应头。如果没有,你可以获取内容,从流中读取mp3元数据并计算出kbps。一旦你有了,你就可以使用字节长度来获得时间长度。
答案 1 :(得分:1)
您发布的代码是从网址提取任何数据所需的代码。
实际上你可能正在从这个url
中提取一个MP3文件,但你正在调用的getContentLength()
正在对URLConnection
对象采取行动 - 它返回的是 size < / strong>您正在下载的文件(字节,千字节,兆字节)。
如果您想检查MP3的播放时间,您必须将数据转换为有效的媒体对象,然后该对象应拥有自己的访问者,例如getDuration()
。
答案 2 :(得分:0)
媒体流媒体开始后,您可以使用mediaplayer.getDuration
获取媒体文件的总持续时间。然后,可以在runnable中使用此值来定期更新搜索栏。