# AVPlayerArkTSAudio **Repository Path**: lengain/avplayer-ark-tsaudio ## Basic Information - **Project Name**: AVPlayerArkTSAudio - **Description**: 鸿蒙音乐播放demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-05 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AVPlayerArkTSAudio ## 介绍 本示例展示了如何使用 AVPlayer 播放本地音频,并提供播放/暂停、进度拖拽、倍速切换等能力。同时接入 AVSession 和后台长时任务,支持更完整的音频播放场景。 ## 效果预览 | 播放效果 | | -------------------------------------------- | ## 工程目录 ``` AVPlayerArkTSAudio entry/src/main/ets/ ├── pages │ └── Index.ets (播放界面,仅负责 UI 渲染与事件分发) ├── tool │ └── ContinuousTaskManager.ets (后台长时任务管理) └── viewmodel └── AudioPlayerViewModel.ets (AVPlayer/AVSession 业务逻辑) entry/src/main/resources/ ├── base │ ├── element │ │ ├── color.json │ │ ├── float.json │ │ └── string.json │ └── media │ ├── ic_video_play.svg (播放键图片资源) │ └── ic_video_pause.svg (暂停键图片资源) └── rawfile └── test_01.mp3 (音频资源) entry/src/ohosTest/ets/ └── test ├── Ability.test.ets (UI测试代码) └── List.test.ets (测试套件列表) ``` ## 核心能力 - 后台持续播放:通过申请 `audioPlayback` 长时任务,确保音频在应用切后台或设备锁屏时依然顺畅播放,不被中断。 - 智能打断与无缝续播:自动监听音频焦点变化(如来电、其他应用播放),暂停时自动记录当前进度,恢复后可无缝继续播放,保障体验流畅。 - 一键播放/暂停切换,操作简便直观。 - 支持进度条拖拽精准 Seek,便于快速定位音频位置。 - 多档倍速播放(1.0x、1.25x、1.75x、2.0x)自由切换,满足多样收听需求。 - 集成 `AVSession`,支持响应系统级播放控制指令(如耳机、锁屏控件、外部设备等)。 - 播放准备就绪即自动申请后台播放权限,确保流程连贯无感知。 ## 架构说明 - `Index.ets`:纯 UI 层,负责页面布局和用户交互事件转发 - `AudioPlayerViewModel.ets`:业务层,负责播放器生命周期、状态回调、会话状态更新、中断处理等 - 通过 `AppStorage + @StorageLink` 进行 UI 状态同步(`isPaused`、`currentTime`、`durationTime`、`speedName`、`speedIndex`) 该分层方式保证 UI 与业务解耦,便于后续扩展更多播放能力(如播放列表、上一首/下一首、播放模式等)。 ## 技术文档 - 鸿蒙端音频播放/后台播放/打断复播说明:`AUDIO_PLAYBACK_TECH_DOC.md` ## 相关权限 不涉及 ## 依赖 不涉及 ## 约束和限制 1. 本示例支持标准系统上运行,支持设备:RK3568; 2. 本示例支持API15版本SDK,版本号:5.0.3.135; 3. 本示例已支持使DevEco Studio 5.0.3 Release (构建版本:5.0.8.300,构建 2025年3月19日)编译运行 ## 下载 如需单独下载本工程,执行如下命令: ``` git init git config core.sparsecheckout true echo code/DocsSample/Media/AVPlayer/AVPlayerArkTSAudio/ > .git/info/sparse-checkout git remote add origin https://gitee.com/openharmony/applications_app_samples.git git pull origin master ```