Ste*_*son 24 java android buffer audio-streaming android-mediaplayer
我的应用程序需要很长时间来准备和缓冲音频流.我已经读过这个问题为什么Android的MediaPlayer需要这么长的时间来准备一些直播的流媒体?然而,它只是说人们已经遇到过这个问题,它没有说明如何改善这个问题.
我在所有版本的Android中都遇到过这种情况,从2.2 - 4.1.2开始测试.
这些流具有适合移动和3G连接的比特率.在相同的iOS应用程序中,相同的流只需不到一秒钟即可开始缓冲.
有没有办法指定应该缓冲的时间量?我知道Tune In广播应用程序提供此功能(https://play.google.com/store/apps/details?id=tunein.player).
谢谢.
编辑:我再次测试,发现它只发生在运行Gingerbread及以上的设备上(> = 2.3).我知道Android将底层框架从OpenCore改为StageFright.那么我该如何优化媒体框架呢?旧的HTC Wildfire可以准备,流式传输和播放,这比全新的HTC One X和Nexus 7快10倍.
Jua*_*lez 13
几个月来我一直在努力解决这个问题.最后我找到了解决方案.
真正的问题在于MediaPlayer类的实现.特别是MediaPlayer缓冲数据的方式.这就是为什么解决方案是创建自己的缓冲,将其保存到临时文件并将其提供给MediaPlayer.
本教程和源代码完全解释了如何操作.http://androidstreamingtut.blogspot.nl/2012/08/custom-progressive-audio-streaming-with.html
通过调整此代码,可以轻松创建更好的流媒体播放器.
谷歌开发人员真的搞砸了.
编辑:这个答案相当古老.现在我建议不要使用MediaPlayer和使用ExoPlayer.它可扩展,稳定,可以播放许多不同类型的媒体.你可以在这里找到它:https://github.com/google/ExoPlayer/
由于Android MediaPlayer类无法访问较低级别的设置(如缓冲区大小),因此您无能为力.唯一的选择是让自己的播放器使用AudioTrack和像FFmpeg这样的库来进行解码.
| 归档时间: |
|
| 查看次数: |
22593 次 |
| 最近记录: |