【问题标题】:Android streaming sound安卓流媒体声音
【发布时间】:2012-04-06 01:59:21
【问题描述】:

我正在为 android 制作流式音乐播放器。 我用 MediaPlayer 试过了

mp.setDataSource("http://www.myServerPage.com/songUrl.mp3"); 
mp.prepare(); 
mp.start(); 

它有效,但效果不佳。 准备状态非常缓慢,并且应用程序经常处于冻结状态。

我在论坛和教程上进行了很多搜索,据我所知,这是常用的方法。

有谁知道这是打开流以从服务器播放音乐的另一种方式,或者有任何好的建议,也许是在 NDK 或其他输入流中?

感谢您的帮助。 /米克

【问题讨论】:

    标签: android stream streaming


    【解决方案1】:

    Media Playback article 非常清楚如何处理远程媒体源:调用prepareAsync() 并设置一个侦听器,以便在源准备好播放时收到通知。

    原因正是你正在经历的:

    (...) 对 prepare() 的调用可能需要很长时间才能执行,因为它 可能涉及获取和解码媒体数据。所以,情况就是这样 对于任何可能需要很长时间才能执行的方法,您应该永远不要调用 它来自应用程序的 UI 线程。这样做会导致 UI 一直挂到方法返回,这是非常糟糕的用户体验 并可能导致 ANR(应用程序无响应)错误。

    我建议您阅读上述文章以获取更多信息和建议,以帮助您进一步发展。

    【讨论】:

    • 感谢您的回答。所以即使是商业应用 Spotify 等,也使用这种方式播放流媒体音乐。
    • @bajenmicke:我不能代表 Spotify,但我非常熟悉另一个音乐应用程序(由几个设备制造商作为其 ROM 的一部分分发),是的,一个使用用于播放所有内容的标准MediaPlayerprepareAsync(),无论是本地还是远程。根据您应用的具体情况,您可能还需要考虑设置一个专用的Service 来托管MediaPlayer
    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    相关资源
    最近更新 更多