流媒体长度

时间:2012-04-12 11:33:31

标签: android media-player android-mediaplayer live-streaming

我想从网址播放媒体文件(mp3)。而且我想得到那个mp3文件的长度。 我成功播放文件,但我也想显示SeekBar。为此,我需要知道媒体文件的长度。

我怎样才能做到这一点?

我找到了一种方法,但使用它我不认为它在几秒钟内给了我长度。

 URLConnection cn = new URL(mediaUrl).openConnection();
 cn.connect();
 int length =  cn.getContentLength();

我认为它会返回字节。那我可以把它转换成秒吗? 或者任何人都知道其他方式?

3 个答案:

答案 0 :(得分:1)

检查getHeaderFields()方法,然后检查是否有包含长度的响应头。如果没有,你可以获取内容,从流中读取mp3元数据并计算出kbps。一旦你有了,你就可以使用字节长度来获得时间长度。

答案 1 :(得分:1)

您发布的代码是从网址提取任何数据所需的代码。

实际上你可能正在从这个url中提取一个MP3文件,但你正在调用的getContentLength()正在对URLConnection对象采取行动 - 它返回的是 size < / strong>您正在下载的文件(字节,千字节,兆字节)。

如果您想检查MP3的播放时间,您必须将数据转换为有效的媒体对象,然后该对象应拥有自己的访问者,例如getDuration()

答案 2 :(得分:0)

媒体流媒体开始后,您可以使用mediaplayer.getDuration获取媒体文件的总持续时间。然后,可以在runnable中使用此值来定期更新搜索栏。