当前位置: 首页 > 知识库问答 >
问题:

ExoPlayer背景音频与前景视频?

慕意致
2023-03-14

我正在Android应用程序中使用ExoPlayer进行媒体播放。

当您在我的应用程序中打开视频时,我希望视频是可见的,而您可以像任何正常的媒体播放器一样听到音频。

但是,当你关闭应用程序时,我希望音频继续在后台服务中播放,并发出播放、暂停和重新启动内容的通知。

我知道,如果在服务中实例化ExoPlayer,我可以让音频以这种方式运行。但是,为了使视频可见,必须将ExoPlayer实例传递给PlayerView,并且PlayerView必须在UI线程上运行。

如果ExoPlayer实例是在Service中定义的,并在Service的工作线程上运行,而PlayerView是在Active中定义的,并在UI线程上运行,那么如何将ExoPlayer实例传递给PlayerView?AIDL仅限于原始类型(String、long、boolean等),因此似乎不可能。

我希望在您关闭应用程序时音频不会停止并重新启动(就像我有两个独立的播放器一样——一个在服务中,一个在UI线程中)。我希望服务处理所有媒体下载、解码和音频播放,并且我希望以某种方式绑定到服务以显示从ExoPlayer踢回的解码帧。

共有1个答案

宗政博
2023-03-14

正如我在问题中指出的,您不能将ExoPlayer实例传递给PlayerView和Service——但是如果ExoPlayer实例可以通过Singleton访问,那么PlayerView和Service都可以使用Singleton的方法直接访问它。

我遇到的问题是,当我以这种方式创建应用程序时,Singleton(和ExoPlayer实例)存在于应用程序的进程空间中,而不是前台服务中。因此,当应用程序被终止时,服务继续运行,但其ExoPlayer实例被销毁(通知仍处于活动状态,但音频中断)

我还不确定如何将Singleton保留在服务的进程空间中。这可能只是确保服务在应用程序之前访问Singleton的问题。

 类似资料:
  • BackgroundAudioManager jd.getBackgroundAudioManager() 获取全局唯一的背景音频管理器。 小程序切入后台,如果音频处于播放状态,可以继续播放。但是后台状态不能通过调用API操纵音频的播放状态。 返回值 BackgroundAudioManager BackgroundAudioManager BackgroundAudioManager 实例,可通

  • 问题内容: 我正在尝试创建一些网站模板来帮助我提高前端开发技能,因为我目前在后端工作上要好得多。 我试图在某种程度上复制我自己的网站的样式,这是一个简单的Bootstrap模板。但是,我不想在标题中使用静态照片,而是将其替换为Youtube视频。我首先减少了网站中使用的模板,然后将其减少到我认为不破坏标题的程度。 我在附近找到了一些代码,以显示如何将Youtube视频设置为整个页面的背景,而不是页

  • 本文向大家介绍iOS视频添加背景音乐同时保留原音,包括了iOS视频添加背景音乐同时保留原音的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 我想知道这一点,经过一点挖掘,找到了这个资源,链接在这个答案中。 该资源指出: 背景与背景色 比较18个色板在页面上呈现100次为小矩形,一次带有背景,一次带有背景颜色。 现在,我可以想象要快得多,因为资源也认为: 我认为当浏览器看到

  • 通过下面的方式,播放一个音频文件作为背景音乐,可以控制背景音乐是否循环播放。 #include "SimpleAudioEngine.h" using namespace CocosDenshion; auto audio = SimpleAudioEngine::getInstance(); // set the background music and continuously play

  • 在超文本标记语言中,我什么时候使用颜色,背景颜色和背景标签有什么区别? 有什么区别?