1

我正在为 android 做一个流媒体音乐播放器。我尝试过使用 MediaPlayer

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

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

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

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

谢谢您的帮助。/米克

4

1 回答 1

1

媒体播放文章非常清楚如何处理远程媒体源:调用prepareAsync()并设置一个侦听器以在源准备好播放时获得通知。

原因正是您正在经历的:

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

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

于 2012-04-06T02:08:28.780 回答