You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现Android画中画(PIP)模式?视频播放交互方案详解

如何实现Android画中画(PIP)模式

我来给你详细捋捋怎么实现这种画中画模式的视频播放功能,步骤拆解下来很清晰:

1. 搭建视频选择界面

首先要做一个允许用户挑选视频的界面,比如用RecyclerView或GridView展示本地视频列表,用户点击任意视频后,跳转到专门的视频播放Activity。

2. 视频播放Activity基础实现

启动视频播放Activity后,用VideoView加载并播放选中的视频,同时要保留视频选择的入口——比如在界面上加个「选择其他视频」按钮,方便用户随时回到选择界面。

3. 实现画中画模式切换

给界面加一个「切换画中画」的按钮,当用户点击时触发PIP模式切换:

  • 先在AndroidManifest里给这个Activity添加android:supportsPictureInPicture="true"属性,开启PIP支持
  • 点击按钮时调用enterPictureInPictureMode()方法,就能让当前Activity切换到小窗画中画状态

4. 复用PIP状态的Activity播放新视频

当视频Activity处于PIP模式时,用户回到视频选择界面选中新视频,这时候不用重新创建Activity实例,直接复用后台运行的那个:

  • 在视频选择界面跳转时,给Intent加上Intent.FLAG_ACTIVITY_REORDER_TO_FRONT标记,把后台的视频Activity调到前台
  • 通过Intent传递新视频的路径,在视频Activity的onNewIntent()方法里接收路径,更新VideoView的播放源,然后切换回全屏模式播放新视频

视频Activity全屏模式展示:

视频Activity全屏模式

视频Activity画中画模式展示:

视频Activity画中画模式

内容的提问来源于stack exchange,提问作者Sudhir Singh

火山引擎 最新活动