服务或IntentService录制后播放音频

GAM*_*AMA 3 service android intentservice android-intentservice

我想实现以下目标:

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

我知道前两个任务是可以通过使用服务实现的,因为我已经在之前的一个应用程序中完成了这个任务,但是当涉及到播放音频文件时,它需要从一个活动中触发.

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

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

文档说,

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

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

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

哪个最符合要求 - > 服务IntentService

任何建议将受到高度赞赏.

Squ*_*onk 8

我会使用一个Service而不是一个IntentService你需要的东西.

特别地,使用绑定Service允许之间的双向通信Activity,其结合并从Service所述Activity.

IntentService课程旨在通过一次性操作自己的工作线程,一旦线程的工作完成后,线程终止和对IntentService呼叫stopSelf()终止本身.这意味着用户(通过an Activity)和a 之间的任何用户交互IntentService都是有问题的.

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

对于回放,Service如果您使用类似MediaPlayer处理其自己的线程的内容进行回放,则在UI线程上运行的事实不是问题.

继此,如果您使用绑定Service,MediaPlayer并且MediaController,你可以控制播放,停止,暂停,搜索等从Activity.

编辑:有关详细信息,请参阅... 绑定服务