【问题标题】:MediaPlayer in separate thread using Service or IntentServiceMediaPlayer 在单独的线程中使用 Service 或 IntentService
【发布时间】:2012-10-26 12:24:54
【问题描述】:

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

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

所以我尝试使用 IntentService,它应该会产生自己的线程,但除了头痛之外我什么也没有。当工作人员独立时,IntentService 似乎没问题,但这里情况并非如此,因为每次我需要更改轨道时,我都需要从主应用程序调用 startService(intent) 方法,并且我不想以多个 MediaPlayer 实例结束互相叠加..

我还看到了一个提示,建议在服务中使用线程。如何使用媒体播放器做到这一点?声明应该在那个线程中还是只是“准备/开始等”?据我所见,这似乎不起作用,但我可能只是错误地实施了它

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

干杯

【问题讨论】:

  • 嘿,我想知道你做了什么,因为我有相同的确切用例,我不确定如果使用 IntentService 或只是 Service,则使用哪个类。

标签: android android-intent media-player


【解决方案1】:

我强烈建议您阅读此处的培训文档: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 合作过,但根据您的经验,处理音乐流似乎是错误的课程。希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多