4

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

4

1 回答 1

3

我已通过将 -t 添加到用于减小 mp3 大小的 LAME 命令中来解决此问题。如果添加 -t 选项,则不会将额外的 LAME 信息写入音频文件:

Kaspers-MacBook-Pro:Bomben finne$ mediainfo bomben2.mp3 General

全名:bomben2.mp3

格式:MPEG 音频

文件大小:67.9 MiB

时长 : 3h 17mn

整体比特率模式:恒定

总比特率:48.0 Kbps

声音的

格式:MPEG 音频

格式版本:版本 1

格式配置文件:第 3 层

时长 : 3h 17mn

比特率模式:恒定

比特率:48.0 Kbps

频道:1 个频道

采样率:32.0 KHz

压缩模式:有损

流大小:67.9 MiB (100%)

但这仍然应该修复,因为它在 iOS 上运行良好。现在您可以通过运行来重现错误:

跛脚 -mm --preset cbr 48 source.mp3 output.mp3

然后让它工作:

lame -t -mm --preset cbr 48 source.mp3 output.mp3

我已经创建了这个问题: https ://code.google.com/p/android/issues/detail?id=158627&thanks=158627&ts=1425655288

于 2015-04-11T07:13:08.767 回答