我正在为Android做流媒体音乐播放器。 我尝试过使用MediaPlayer
mp.setDataSource("http://www.myServerPage.com/songUrl.mp3");
mp.prepare();
mp.start();
它有效但不好。 准备状态非常缓慢,通常应用程序冻结。
我在论坛和教程上搜索了很多内容,据我所知,这是常用的方法。
有谁知道这是打开流来播放服务器音乐的另一种方式,还是有任何好的建议,可能是在NDK或其他输入流?
感谢您的帮助。 / micke
答案 0 :(得分:1)
Media Playback article非常清楚如何处理远程媒体资源:调用prepareAsync()
并设置一个监听器,以便在源准备好播放时收到通知。
原因正是您所遇到的:
(...)对prepare()的调用可能需要很长时间才能执行,因为它 可能涉及获取和解码媒体数据。所以,就像这样 使用任何可能需要很长时间才能执行的方法,你应该从不打电话 它来自您的应用程序的UI线程。这样做会导致UI 挂起直到方法返回,这是一个非常糟糕的用户体验 并且可能导致ANR(应用程序无响应)错误。
我建议你仔细阅读上面提到的文章,获取更多可以帮助你进一步开发的信息和指示。