【发布时间】:2019-06-03 19:52:59
【问题描述】:
我正在使用 ExoPlayer 在 Android 应用程序中播放媒体。
当您在我的应用中打开视频时,我希望视频在您可以听到音频的同时可见 - 就像任何普通的媒体播放器一样。
但是,当您关闭应用程序时,我希望音频继续在后台服务中播放,并提供有关播放、暂停和重新启动内容的通知。
我知道如果 ExoPlayer 在服务中实例化,我可以让音频以这种方式运行。但是为了让视频可见,必须将 ExoPlayer 实例传递给 PlayerView,并且 PlayerView 必须在 UI 线程上运行。
如果 ExoPlayer 实例定义在 Service 中,并在 Service 的工作线程上运行,而 PlayerView 定义在 Activity 中并在 UI 线程上运行,那么如何将 ExoPlayer 实例传递给 PlayerView? AIDL 仅限于原始类型(String、long、boolean 等),因此似乎不可能。
我希望在您关闭应用程序时音频不会停止并重新启动(如果我有两个单独的播放器 - 一个在服务中,一个在 UI 线程中)。我希望服务处理所有媒体下载、解码和音频播放,并且我想以某种方式绑定到服务以显示从 ExoPlayer 踢回的解码帧。
【问题讨论】:
标签: android audio video service exoplayer