单元三 音乐播放与播放控制功能开发

本单元实现歌曲播放和播放控制。MusicService 管理 MediaPlayer 和播放状态;MusicListFragment 接收歌曲点击,PlayerFragment 显示底部播放栏,提供歌曲信息、播放按钮和进度条。

一、学习目标

素质目标

序号目标内容
1建立按职责划分分析页面、服务和播放器之间数据流的意识。
2形成在每个播放阶段检查按钮、歌曲信息、时间文本和进度条是否同步的习惯。
3建立生命周期意识,在页面退出和服务销毁时检查绑定关系、协程任务和播放器资源。

能力目标

序号目标内容
1能够启动、绑定和解除绑定 MusicService,由服务统一管理音频播放。
2能够使用 MediaPlayer 完成歌曲准备、播放、暂停、上一首和下一首操作。
3能够使用 StateFlow 和协程同步播放状态、歌曲信息和播放进度。
4能够实现 SeekBar 拖动跳转,并在合适的生命周期回调中取消任务和释放资源。

二、本单元工作内容

本单元完成以下工作:

  • 创建 MusicService,由 MainActivity 启动,两个 Fragment 分别绑定服务。
  • 在 MusicService 中保存歌曲列表,使用 MediaPlayer 准备和播放在线音频。
  • 将歌曲列表的点击操作交给 MusicService,点击歌曲后即可听到声音。
  • 定义 PlaybackState,通过 StateFlow 更新播放栏的歌曲信息和播放图标。
  • 接入暂停、继续、上一首和下一首按钮,定时更新播放进度,并支持拖动 SeekBar 跳转。