【发布时间】:2015-06-08 13:53:42
【问题描述】:
我正在使用MediaPlayer 通过 HTTP 流式传输广播。在 Lollipop 上,我的直播需要大约一分钟才能开始,这是不可接受的。在 Kitkat 上大约需要 20 秒,这已经很痛苦但现在变得无法使用。
有一个well known problem 与此组件有关缓冲:要缓冲的字节量是硬编码的,无法更改。
我的代码真的很标准
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource(streamUrl);
player.prepareAsync();
我准备好了
player.start();
我听说过 GStreamer 的替代品,但我无法让它在 Windows 上运行。
我想知道是否有人有一个可行的解决方案,可以通过 HTTP 流式传输广播,并具有不错的启动延迟。
编辑
我测试了 ExoPlayer,但我得到的较低启动时间是 15 秒。播放器卡在“准备”状态(不是缓冲,到目前为止我看到了)。
编辑
流的格式是AAC
编辑
我测试了https://code.google.com/p/aacdecoder-android/,但这个库唯一的问题是缺乏对流暂停的支持。我的应用程序要求支持在线流暂停。
【问题讨论】:
-
您的流使用什么比特率?例如32 kbps 64 kbps 等
-
@Simas:它使用 32 kbps。我知道这会随着比特率的提高而改善,但似乎不是一个真正的解决方案
-
你在播放什么格式的音频,AAC?
-
@BojanKseneman:是的,AAC。
-
可以选择 Web api 吗?
标签: android android-mediaplayer