服务或 IntentService 在录制后播放音频
Service OR IntentService playing audio after recording
我想实现以下目标:
- 录制音频
- 将音频发送到服务器
- 播放音频
我知道前 2 个任务可以通过使用 Service 实现,因为我在之前的一个应用程序中已经做到了,但是在播放音频文件时,它需要从 Activity.
触发
因为从 Service 访问 Activity 可以通过使用 BroadcastReceiver 来实现,但是从 Activity 访问 Service 的方法呢?
那么,现在问题来了:是否为 服务 本身寻求 播放音频(由 activity 触发) 或者使用 IntentService.
文档说,
No easy or direct way to interact with user interface directly from IntentService.
和
Any tasks started using IntentService cannot be interrupted
我可能想停止录制蚂蚁时间并随时播放。
哪个最适合需求 --> Service 或 IntentService ??
如有任何建议,我们将不胜感激。
我会使用 Service
而不是 IntentService
来满足您的需要。
特别是,使用绑定 Service
,它允许绑定到它的 Activity
和从 Service
到 Activity
之间的双向通信。
IntentService
class 专为使用自己的工作线程的一次性操作而设计,一旦线程上的工作完成,线程就会终止并且 IntentService
调用 stopSelf()
终止自身。这意味着用户(通过 Activity
)和 IntentService
之间的任何用户交互都是有问题的。
另一方面,绑定 Service
将一直存在,直到它被显式停止或直到最后一个绑定组件解除绑定。这允许更长期的互动。
对于回放,Service
在 UI 线程上运行的事实不是问题,如果您使用 MediaPlayer
之类的东西处理它自己的线程用于回放。
此外,如果您使用绑定 Service
、MediaPlayer
和 MediaController
,您可以从 Activity
控制播放、停止、暂停、搜索等.
编辑:有关更多信息,请参阅... Bound Services
我想实现以下目标:
- 录制音频
- 将音频发送到服务器
- 播放音频
我知道前 2 个任务可以通过使用 Service 实现,因为我在之前的一个应用程序中已经做到了,但是在播放音频文件时,它需要从 Activity.
触发因为从 Service 访问 Activity 可以通过使用 BroadcastReceiver 来实现,但是从 Activity 访问 Service 的方法呢?
那么,现在问题来了:是否为 服务 本身寻求 播放音频(由 activity 触发) 或者使用 IntentService.
文档说,
No easy or direct way to interact with user interface directly from IntentService.
和
Any tasks started using IntentService cannot be interrupted
我可能想停止录制蚂蚁时间并随时播放。
哪个最适合需求 --> Service 或 IntentService ??
如有任何建议,我们将不胜感激。
我会使用 Service
而不是 IntentService
来满足您的需要。
特别是,使用绑定 Service
,它允许绑定到它的 Activity
和从 Service
到 Activity
之间的双向通信。
IntentService
class 专为使用自己的工作线程的一次性操作而设计,一旦线程上的工作完成,线程就会终止并且 IntentService
调用 stopSelf()
终止自身。这意味着用户(通过 Activity
)和 IntentService
之间的任何用户交互都是有问题的。
另一方面,绑定 Service
将一直存在,直到它被显式停止或直到最后一个绑定组件解除绑定。这允许更长期的互动。
对于回放,Service
在 UI 线程上运行的事实不是问题,如果您使用 MediaPlayer
之类的东西处理它自己的线程用于回放。
此外,如果您使用绑定 Service
、MediaPlayer
和 MediaController
,您可以从 Activity
控制播放、停止、暂停、搜索等.
编辑:有关更多信息,请参阅... Bound Services