我正在使用MediaPlayer
通过HTTP流式传输收听广播。在Lollipop上,我的流需要大约一分钟才能开始,这是不可接受的。在Kitkat上大约需要20秒,这已经很痛苦了,现在变得无法使用。
这个组件与缓冲相关存在一个众所周知的问题:缓冲的字节数是硬编码的,不能更改。
我的代码非常标准
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/,但这个库唯一的问题是不支持在线流暂停。我的应用程序需要支持在线流暂停。