android – 发布MediaPlayer缓冲时间流音频

我正在使用MediaPlayer通过HTTP流式传输.在棒棒糖我的流需要大约一分钟开始是不能接受的. Kit Cat需要大约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/,但是这个库所面临的唯一问题是缺少对流暂停的支持.我的应用程序需要支持在线流量暂停.

解决方法

如果您的用例与GPL / LGPL许可证兼容,那么VLC应该是您所需要的. VLC能够在3G网络上从您的网址流出,延迟时间只有1秒.

步骤1:
下载VLC源代码并编译instruction

第2步:最重要的类是org.videolan.vlc.audio.AudioServiceController,它是从org.videolan.vlc.gui.MRLPanelFragement.processUri()调用的 – > org.videolan.vlc.util.Util.openStream(Context,String) – > AudioServiceController.load(String,boolean).您可以删除除AudioServiceController及其支持类之外的所有不必要的代码以减小大小

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...