1e41f4b71Sopenharmony_ci# AVSession Kit简介
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciAVSession Kit(Audio & Video Session Kit,音视频播控服务)是系统提供的音视频管控服务,用于统一管理系统中所有音视频行为,帮助开发者快速构建音视频统一展示和控制能力。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci## 能力范围
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci- 提供音视频统一管控能力,音视频类应用接入AVSession后,可以发送应用的数据(比如正在播放的歌曲、歌曲的播放状态等),用户可以通过系统播控中心、语音助手等应用切换多个应用、多个设备播放。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci- 提供音频后台约束能力,音频接入AVSession后,可以进行后台音频播放。此功能需要同时申请后台任务。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## 亮点/特征
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci- **投播体验一致**
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci  提供音视频统一管控能力,音视频类应用接入AVSession后,可以发送应用的数据(比如正在播放的歌曲、歌曲的播放状态等)。
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci  用户可以通过系统播控中心、语音助手等应用切换多个应用、多个设备播放。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci- **规范后台播放管理**
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci  通过播控中心,应用后台播放可见可控,音视频应用可统一控制。
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci  系统针对后台播放进行强制管控,未接入AVSession的应用在退到后台时,将会被强制暂停音频播放。解决应用在后台恶意播放,而用户无法找到对应应用无法关闭的问题。
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci## 基础概念
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci在开发前,需要先了解以下基础概念:
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci- 媒体会话(AVSession)
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci  媒体会话的一端连接被控的音视频应用,另一端连接音视频应用的控制端(如播控中心、语音助手等)。媒体会话提供了音视频应用和音视频应用控制端之间进行信息交换的通道。
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci- 媒体会话提供方
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci  媒体会话提供方指接入媒体会话的音视频应用。音视频应用接入媒体会话后,需要向媒体会话提供播放的媒体信息,例如播放曲目名称、播放状态等。同时,音视频应用需要通过媒体会话接收控制端发出的控制命令并进行正确响应。
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci- 媒体会话控制方
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci  媒体会话控制方指接入媒体会话并具有全局管控音视频行为功能的应用,例如系统播控中心、语音助手等。为便于开发者理解,下文将多处使用系统应用播控中心,作为媒体会话控制方举例。播控中心等系统应用接入媒体会话后,可以通过监听媒体会话获取最新的媒体信息,也可以通过媒体会话向音视频应用发出控制命令。
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci- 媒体会话控制器(AVSessionController)
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci  媒体会话控制器的持有者,一般指媒体会话控制方,可以控制媒体会话提供方的应用播放行为,也可以获取应用的播放信息,还可以监听音视频应用播放状态的变化,用于确保媒体会话信息在音视频应用和播控中心之间的同步。
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci- 媒体会话管理器(AVSessionManager)
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci  媒体会话管理器提供了管理媒体会话的能力,可以创建媒体会话、创建媒体会话控制器、发送系统控制事件,也支持对媒体会话的状态进行监听。
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci## 媒体会话交互过程
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci媒体会话分为本地和分布式两种场景。
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci![AVSession Interaction Process](figures/avsession-interaction-process.png)
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci- 本地媒体会话
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci  本地媒体会话在本地设备中的媒体会话提供方和媒体会话控制方之间建立连接,实现系统中音视频应用统一的媒体播放控制和媒体信息显示。
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci- 分布式媒体会话
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci  分布式媒体会话在跨设备场景中的媒体会话提供方和媒体会话控制方之间建立连接,实现音视频应用跨设备的媒体播放控制和媒体信息显示。例如,将设备A中播放的内容投播到设备B,并在设备B中进行播放控制。
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci## 约束和限制
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci所有需要进行后台播放的音视频应用,都需要同时接入AVSession和后台任务管理,未接入的应用在退到后台时,将会被强制暂停音频播放。
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci## 与相关Kit的关系
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci应用实现后台播放时,需要使用[BackgroundTasks Kit](../../task-management/background-task-overview.md)(后台任务管理)的能力,申请对应的长时任务,避免进入挂起(Suspend)状态。
70