媒体播放器、exoplayer 和音频流

Mediaplayer, exoplayer and audio streaming

我正在开发一个 Android 流式传输音频的应用程序。我目前正在使用 Android MediaPlayer。如果我在流式传输时寻找音频文件中的某个位置,同时寻找已下载到我的 mac(使用 QuickTime Player)的同一音频文件中的相同位置,我不会来到相同的音频位置。显示屏显示我在同一位置 (02:49:54),但音频播放的声音不同(流媒体服务器比正确位置晚 20-40 秒)。我尝试了 Exoplayer Demo 应用程序,并将其中一个静态 url 替换为我自己的流 url。同样的事情也发生在 Exoplayer 上。我作为 iOS 开发人员的朋友在流式传输(使用相同的流式传输服务器)时寻找正确的位置没有问题。我还有一个问题,有时流媒体在实际音频流媒体完成之前停止几秒钟。我希望 Exoplayer 能解决我的问题,因为旧的 MediaPlayer 似乎有点问题。有谁知道我为什么会遇到这些问题?

我已通过将 -t 添加到我用来减小 mp3 大小的 LAME 命令来解决此问题。如果您添加 -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