单元四 MV 视频播放
本单元在音频播放功能的基础上增加独立的 MV 视频页面。歌曲列表负责传递 MV 信息,VideoActivity 使用 Media3 ExoPlayer 完成视频播放、进度控制和生命周期处理。
一、学习目标
素质目标
| 序号 | 目标内容 |
|---|---|
| 1 | 形成从页面跳转、播放器状态到资源释放逐步验证功能的开发习惯。 |
| 2 | 建立对 MV 地址、播放器准备状态和用户拖动操作进行有效性判断的意识。 |
| 3 | 形成在页面离开和销毁时及时暂停播放、取消任务和释放资源的规范。 |
能力目标
| 序号 | 目标内容 |
|---|---|
| 1 | 能够使用 Intent 在歌曲列表和 VideoActivity 之间传递 MV 地址、歌曲名称和歌手信息。 |
| 2 | 能够使用 Media3 ExoPlayer 和 PlayerView 加载、播放并结束在线 MV。 |
| 3 | 能够实现播放暂停、时间显示、进度同步和 SeekBar 拖动跳转。 |
| 4 | 能够在 VideoActivity 的生命周期回调中暂停视频、取消进度任务并释放 ExoPlayer。 |
二、本单元工作内容
本单元完成以下工作:
- 创建 VideoActivity,注册页面并从歌曲列表的 MV 图标进入视频页面。
- 使用 Intent 传递 MV 地址和歌曲信息,对没有 MV 地址的歌曲给出提示。
- 配置 Media3 依赖,使用 PlayerView 承载视频并创建 ExoPlayer 播放在线 MV。
- 增加播放暂停、时间文本、进度条和拖动控制,处理用户操作与自动刷新之间的关系。
- 在页面停止和销毁时暂停视频、取消协程任务并释放播放器资源。