MediaPlayer使用Service或IntentService在单独的线程中

时间:2012-10-26 12:24:55

标签: android android-intent media-player

嗨我需要一个MediaPlayer实例才能在后台运行,所以我开始使用服务。

一切正常但我会在一段时间后得到ANR(应用程序没有响应),即使UI工作完美。很公平,我知道服务仍然在主线程上运行,所以ANR是有道理的。

所以我尝试使用IntentService,它应该产生自己的线程,但除了头痛之外什么都没有。当工作人员独立时,IntentService似乎没问题,但这不是这里的情况,因为我需要在每次需要更改跟踪时从主应用程序调用startService(intent)方法,并且我不希望最终得到多个MediaPlayer实例互相玩耍..

我还看到了暗示在服务中使用Thread的提示。我怎么用Media Player做到这一点? DECLARATION应该在那个帖子中还是只是“准备/开始等”?从我看到的似乎没有用,但我可能只是错误地实现了

非常感谢任何提示,可能只有一个非常简单的例子。

欢呼声

1 个答案:

答案 0 :(得分:5)

我强烈建议您在此处阅读培训文档:http://developer.android.com/guide/components/services.html

这对我很有帮助。然后流式传输音频的NPR应用程序是开源的,所以在这里查看他们的服务: http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/PlaybackService.java

阅读这两个,我建议使用服务并自己处理线程。我还没有使用过IntentService,但根据你的经验,它似乎是处理音乐流的错误类。希望有所帮助!