当前位置: 首页 > 面试题库 >

Android MediaPlayer需要很长时间来准备和缓冲

程飞星
2023-03-14
问题内容

我在从2.2-4.1.2测试的所有Android版本中都遇到了这种情况。

这些流的比特率适合移动和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倍,这似乎是错误的。


问题答案:

我已经为这个问题苦苦挣扎了几个月。终于我找到了解决方案。

真正的问题在于MediaPlayer类的实现。特别是MediaPlayer缓冲数据的方式。这就是为什么解决方案是创建自己的缓冲,将其保存到临时文件并将其提供给MediaPlayer的原因。

本教程和源代码确切说明了方法。http://androidstreamingtut.blogspot.nl/2012/08/custom-
progressive-audio-streaming-
with.html

通过修改此代码,可以轻松创建更好的流播放器。

Google Developers确实搞砸了。

编辑:这个答案是相当古老的。如今,我建议不要使用 MediaPlayerExoPlayer而是改用。它是可扩展的,稳定的,并且可以播放许多不同类型的媒体。您可以在这里找到它: https
//github.com/google/ExoPlayer/


 类似资料:
  • 我使用javamail通过IMAP协议从exchage帐户读取邮件。这些邮件是纯格式的,内容是XML。 几乎所有这些邮件的大小都很短(通常小于100Kb)。然而,有时我不得不处理大型邮件(大约10Mb-15Mb)。例如,昨天我收到一封13Mb大小的电子邮件。仅仅读它就花了50多分钟。这正常吗?有没有办法提高它的性能?代码是: 花费如此长时间的方法是。我做错了什么?有什么提示吗? 非常感谢,我的英语

  • 给出结果需要20多秒,而在mongo控制台中同样的查询需要不到一秒。 为什么会出现这种情况,如何减少速度差距?

  • 我有以下PHP代码在Laravel正在执行一个MySql查询: 执行此查询需要很长时间。 我对所排序的列以及其他查询的许多列都有索引。 我该怎么办? 更新: 执行的查询: 结果:

  • 问题内容: 我在重新整理模型时遇到问题。我训练了模型并使用此代码保存了模型。我不太确定这是否是正确的方法,我将不胜感激。当我尝试还原模型时会发生问题。我只需要预测,就不会再接受过培训了。从模型中恢复参数需要花费很多时间。在我仅需要预测的前提下,如何改进模型保护程序或模型恢复程序以使其快速完成。 恢复: 编辑:也许使用Google Colab的GPU训练模型,然后将其还原到我的PC上这一事实很重要。

  • 升级到macOS Sierra后,“sbt测试”(包括查找本地主机名/IP地址)的性能似乎有问题。在以前版本的OSX上,完成该操作大约需要40-50秒。macOS Sierra时间远高于此。我最后一次跑步大约15分钟。编译时间与“El Capitan”上的编译时间大致相同。 我是我团队中唯一一个尝试这款新苹果电脑的人,所以我不知道它是只发生在我的苹果电脑上,还是一个普遍的问题。 我的同事在Ubun

  • 2013/04/22 12:35:56[错误]2709#0:*1从上游读取响应标头时上游超时(110:连接超时),客户端:xx.xx.xx.xx,服务器:,请求:“get/entity/datasenders/http/1.1”,上游:“uwsgi://127.0.0.1:9001”,主机:“xxx.xx.xx.x” 我已经设置了标题超时和uWSGI发送/读取超时5分钟,有人能告诉我我可以做什么来