gpt4 book ai didi

android - 在 Activity 之间传递媒体播放器对象

转载 作者:搜寻专家 更新时间:2023-11-01 09:14:06 26 4
gpt4 key购买 nike

我想知道如何在 Activity 之间传递 MediaPlayer 对象,以便我可以在整个应用程序中保持恒定的声音播放。

最佳答案

您不会“在 Activity 之间传递 MediaPlayer 对象”。

您需要访问 MediaPlayer来自自定义Service在后台播放声音,并让您的 Activity 与此服务交互。

对于交互,我个人的偏好是使用 AIDL 进行绑定(bind).每当我尝试使用简单的 Intent 和 onStartCommand () 它显示 Activity/服务交互不足(我也使用音频)。但它可能对您有用。

使用 AIDL 和绑定(bind),您可以公开自定义函数,例如 play(uri) , pause() , rewind()等.... MediaPlayer实例将在 play(uri) 中创建如果它尚未实例化并在您的服务的 onDestroy() 中发布.

您甚至可以使用 RemoteCallbackList 注册一个监听器获得有关位置变化或其他一些事件的通知。请参阅 AIDL 文档中的示例。这样做的好处是您的服务可以检测到监听器何时注销。这样你就可以在调用 stopSelf() 之前在服务中有一个小的超时。 ,如果另一个监听器( Activity )没有快速注册。这很有用,因为您不一定知道某个 Activity 是因为用户按下主页按钮而暂停,还是因为他从一个 Activity 循环到另一个而暂停。

是的,它需要一些工作 ;)

注意:您仍然需要调用startService()在绑定(bind)之前,否则服务将在 Activity 解除绑定(bind)时停止。

关于android - 在 Activity 之间传递媒体播放器对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5954686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com