Mediaplayer、Exoplayer和音频流传输

4

我正在开发一个在Android上播放音频的应用程序。目前,我使用的是Android MediaPlayer。如果我在听音频时寻找到某个位置,并同时在已经下载到我的Mac(使用QuickTime Player)的同一音频文件中寻找到相同的位置,我将无法得到相同的音频位置。显示器显示我在同一位置(02:49:54),但音频并没有播放相同的声音(流媒体服务器比正确位置落后20-40秒)。我尝试了Exoplayer演示应用程序,并使用自己的流媒体URL替换了其中一个静态URL。 Exoplayer也发生了同样的问题。我的iOS开发人员朋友没有问题,在听音频时可以定位到正确的位置(使用相同的流媒体服务器)。我还遇到过有时流媒体会在实际音频流完成几秒钟之前停止的问题。由于旧的MediaPlayer似乎有点有缺陷,我希望Exoplayer能解决我的问题。是否有任何人对我出现这些问题有什么想法?


我现在已经测试了Vitamio https://www.vitamio.org/en/。Vitamio没有这个错误,它会寻找正确的位置。但是我目前无法让Vitamio与我的当前实现配合工作。 - Kasper Finne Nielsen
哪个文件是?你能分享一下URL吗? - Dekra
@KasperFinneNielsen 我也遇到了类似的问题,对我来说,Android 流可以工作,但是寻求不起作用。我收到了“流没有持续时间,因此无法寻找”的消息。同时,在我朋友的 iOS 版本上完美地工作。你找到任何解决方法了吗? - Vucko
1个回答

3
我已经通过在我用来减小mp3文件大小的LAME命令中添加-t来解决了这个问题。如果添加-t选项,则不会向音频文件中写入额外的LAME信息:
Kaspers-MacBook-Pro:Bomben finne$ mediainfo bomben2.mp3 常规
完整名称:bomben2.mp3
格式:MPEG音频
文件大小:67.9 MiB
持续时间:3小时17分钟
总比特率模式:恒定
总比特率:48.0 Kbps
音频
格式:MPEG音频
格式版本:版本1
格式配置文件:层3
持续时间:3小时17分钟
比特率模式:恒定
比特率:48.0 Kbps
通道数:1个通道
采样率:32.0 KHz
压缩模式:有损压缩
流大小:67.9 MiB(100%)
但是,这个问题仍然应该被解决,因为它在iOS上运行良好。现在您可以通过运行以下命令重现错误: lame -m m --preset cbr 48 source.mp3 output.mp3
然后使其工作: lame -t -m m --preset cbr 48 source.mp3 output.mp3
我已经创建了这个问题: https://code.google.com/p/android/issues/detail?id=158627&thanks=158627&ts=1425655288

嘿@Kasper,当没有专辑封面的情况下,如何隐藏播放器视图的黑屏,以便流式传输音频? - Pemba Tamang
现在我只是将高度设置为一个较小的数字,并使用与我的控件相匹配的背景。 - Pemba Tamang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接