服务或IntentService录制后播放音频

时间:2015-03-13 08:51:45

标签: android service intentservice android-intentservice

我想实现以下目标:

  • 录制音频
  • 将音频发送到服务器
  • 播放音频

我知道前两个任务可以通过使用服务来完成,因为我已经在之前的某个应用程序中完成了这项任务,但是当涉及播放音频文件时,它需要从活性。

因为可以使用 BroadcastReceiver 来实现从服务访问Activity,但是如何从Activity访问服务的方法呢?

所以,现在出现了一个问题:是否为播放音频服务本身(从活动触发)或使用 IntentService

文档说,

  

没有简单或直接的方式直接从IntentService与用户界面进行交互。

  

使用IntentService启动的任何任务都不能被中断

我可能想停止录制蚂蚁时间并随时播放。

哪种最符合要求 - > 服务 IntentService ??

任何建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:7)

我会根据您的需要使用Service而不是IntentService

特别是,使用绑定Service,允许绑定到Activity的{​​{1}}与ServiceActivity之间的双向通信。

IntentService类用于使用自己的工作线程进行一次性操作,一旦线程上的工作完成,线程终止,IntentService调用stopSelf()终止本身。这意味着用户(通过Activity)和IntentService之间的任何用户互动都存在问题。

另一方面,绑定Service将一直存在,直到它显式停止或直到最后一个绑定组件解除绑定。这允许更长期的互动。

对于播放,如果您使用Service之类的东西来处理其自己的线程以进行播放,那么在{@ 1}}上运行的事实不是问题。

除此之外,如果您使用绑定的MediaPlayerServiceMediaPlayer,则可以从MediaController控制播放,停止,暂停,搜索等。< / p>

编辑:有关详细信息,请参阅...... Bound Services