1e41f4b71Sopenharmony_ci# @ohos.PiPWindow (画中画窗口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci该模块提供画中画基础功能,包括判断当前系统是否开启画中画功能,以及创建画中画控制器用于启动、停止画中画等。主要用于视频播放、视频通话或视频会议场景下,以小窗(画中画)模式呈现内容。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci> 
9e41f4b71Sopenharmony_ci> 需要在支持SystemCapability.Window.SessionManager能力的系统上使用该模块,<!--RP1-->参考[系统能力SystemCapability使用指南](../syscap.md)<!--RP1End-->。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## 导入模块
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```ts
14e41f4b71Sopenharmony_ciimport { PiPWindow } from '@kit.ArkUI';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## PiPWindow.isPiPEnabled
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciisPiPEnabled(): boolean
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci用于判断当前系统是否支持画中画功能。
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci**返回值:**
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci| 类型       | 说明                                  |
30e41f4b71Sopenharmony_ci|----------|-------------------------------------|
31e41f4b71Sopenharmony_ci| boolean  | 当前系统是否开启画中画功能。true表示支持,false则表示不支持。 |
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci**示例:**
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci```ts
36e41f4b71Sopenharmony_cilet enable: boolean = PiPWindow.isPiPEnabled();
37e41f4b71Sopenharmony_ciconsole.info('isPipEnabled:' + enable);
38e41f4b71Sopenharmony_ci```
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci## PiPWindow.create
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_cicreate(config: PiPConfiguration): Promise&lt;PiPController&gt;
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci创建画中画控制器,使用Promise异步回调。
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci**参数:**
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci| 参数名          | 类型                                       | 必填        | 说明                                                                                                                                                                                                                                     |
53e41f4b71Sopenharmony_ci|--------------|------------------------------------------|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
54e41f4b71Sopenharmony_ci| config       | [PiPConfiguration](#pipconfiguration)    | 是         | 创建画中画控制器的参数。该参数不能为空,并且构造该参数的context和componentController不能为空。构造该参数时,如果指定了templateType,需保证templateType是[PiPTemplateType](#piptemplatetype)类型;如果指定了controlGroups,需保证controlGroups与templateType匹配,详见[PiPControlGroup](#pipcontrolgroup12)。 |
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci**返回值:**
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci| 类型                                                         | 说明                       |
59e41f4b71Sopenharmony_ci|------------------------------------------------------------|--------------------------|
60e41f4b71Sopenharmony_ci| Promise&lt;[PiPController](#pipcontroller)&gt;  | Promise对象。返回当前创建的画中画控制器。 |
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ci**错误码:**
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                                                         |
67e41f4b71Sopenharmony_ci|-------|----------------------------------------------------------------------------------------------------------------------------------------------|
68e41f4b71Sopenharmony_ci| 401   | Params error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. |
69e41f4b71Sopenharmony_ci| 801   | Capability not supported.Failed to call the API due to limited device capabilities.                                                       |
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci**示例:**
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci```ts
74e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
75e41f4b71Sopenharmony_ciimport { BuilderNode, FrameNode, NodeController, Size, UIContext } from '@kit.ArkUI';
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ciclass Params {
78e41f4b71Sopenharmony_ci  text: string = '';
79e41f4b71Sopenharmony_ci  constructor(text: string) {
80e41f4b71Sopenharmony_ci    this.text = text;
81e41f4b71Sopenharmony_ci  }
82e41f4b71Sopenharmony_ci}
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci// 开发者可以通过@Builder装饰器实现布局构建
85e41f4b71Sopenharmony_ci@Builder
86e41f4b71Sopenharmony_cifunction buildText(params: Params) {
87e41f4b71Sopenharmony_ci  Column() {
88e41f4b71Sopenharmony_ci    Text(params.text)
89e41f4b71Sopenharmony_ci      .fontSize(20)
90e41f4b71Sopenharmony_ci      .fontColor(Color.Red)
91e41f4b71Sopenharmony_ci  }
92e41f4b71Sopenharmony_ci  .width('100%') // 宽度方向充满画中画窗口
93e41f4b71Sopenharmony_ci  .height('100%') // 高度方向充满画中画窗口
94e41f4b71Sopenharmony_ci}
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci// 开发者可通过继承NodeController实现自定义UI控制器
97e41f4b71Sopenharmony_ciclass TextNodeController extends NodeController {
98e41f4b71Sopenharmony_ci  private message: string;
99e41f4b71Sopenharmony_ci  private textNode: BuilderNode<[Params]> | null = null;
100e41f4b71Sopenharmony_ci  constructor(message: string) {
101e41f4b71Sopenharmony_ci    super();
102e41f4b71Sopenharmony_ci    this.message = message;
103e41f4b71Sopenharmony_ci  }
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci  // 通过BuilderNode加载自定义布局
106e41f4b71Sopenharmony_ci  makeNode(context: UIContext): FrameNode | null {
107e41f4b71Sopenharmony_ci    this.textNode = new BuilderNode(context);
108e41f4b71Sopenharmony_ci    this.textNode.build(wrapBuilder<[Params]>(buildText), new Params(this.message));
109e41f4b71Sopenharmony_ci    return this.textNode.getFrameNode();
110e41f4b71Sopenharmony_ci  }
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci  // 开发者可自定义该方法实现布局更新
113e41f4b71Sopenharmony_ci  update(message: string) {
114e41f4b71Sopenharmony_ci    console.log(`update message: ${message}`);
115e41f4b71Sopenharmony_ci    if (this.textNode !== null) {
116e41f4b71Sopenharmony_ci      this.textNode.update(new Params(message));
117e41f4b71Sopenharmony_ci    }
118e41f4b71Sopenharmony_ci  }
119e41f4b71Sopenharmony_ci}
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_cilet pipController: PiPWindow.PiPController | undefined = undefined;
122e41f4b71Sopenharmony_cilet mXComponentController: XComponentController = new XComponentController(); // 开发者应使用该mXComponentController初始化XComponent: XComponent( {id: 'video', type: 'surface', controller: mXComponentController} ),保证XComponent的内容可以被迁移到画中画窗口。
123e41f4b71Sopenharmony_cilet nodeController: TextNodeController = new TextNodeController('this is custom UI');
124e41f4b71Sopenharmony_cilet navId: string = "page_1"; // 假设当前页面的导航id为page_1,详见PiPConfiguration定义,具体导航名称由开发者自行定义。
125e41f4b71Sopenharmony_cilet contentWidth: number = 800; // 假设当前内容宽度800px。
126e41f4b71Sopenharmony_cilet contentHeight: number = 600; // 假设当前内容高度600px。
127e41f4b71Sopenharmony_cilet config: PiPWindow.PiPConfiguration = {
128e41f4b71Sopenharmony_ci  context: getContext(this),
129e41f4b71Sopenharmony_ci  componentController: mXComponentController,
130e41f4b71Sopenharmony_ci  navigationId: navId,
131e41f4b71Sopenharmony_ci  templateType: PiPWindow.PiPTemplateType.VIDEO_PLAY,
132e41f4b71Sopenharmony_ci  contentWidth: contentWidth,
133e41f4b71Sopenharmony_ci  contentHeight: contentHeight,
134e41f4b71Sopenharmony_ci  controlGroups: [PiPWindow.VideoPlayControlGroup.VIDEO_PREVIOUS_NEXT],
135e41f4b71Sopenharmony_ci  customUIController: nodeController, // 可选,如果需要在画中画显示内容上方展示自定义UI,可设置该参数。
136e41f4b71Sopenharmony_ci};
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_cilet promise : Promise<PiPWindow.PiPController> = PiPWindow.create(config);
139e41f4b71Sopenharmony_cipromise.then((data : PiPWindow.PiPController) => {
140e41f4b71Sopenharmony_ci  pipController = data;
141e41f4b71Sopenharmony_ci  console.info(`Succeeded in creating pip controller. Data:${data}`);
142e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
143e41f4b71Sopenharmony_ci  console.error(`Failed to create pip controller. Cause:${err.code}, message:${err.message}`);
144e41f4b71Sopenharmony_ci});
145e41f4b71Sopenharmony_ci```
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci## PiPWindow.create<sup>12+</sup>
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_cicreate(config: PiPConfiguration, contentNode: typeNode.XComponent): Promise&lt;PiPController&gt;
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci通过typeNode创建画中画控制器,使用Promise异步回调。
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci**参数:**
158e41f4b71Sopenharmony_ci 
159e41f4b71Sopenharmony_ci| 参数名          | 类型                                       | 必填        | 说明                                                                                                                                                                                                                                     |
160e41f4b71Sopenharmony_ci|--------------|------------------------------------------|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
161e41f4b71Sopenharmony_ci| config       | [PiPConfiguration](#pipconfiguration)    | 是         | 创建画中画控制器的参数。该参数不能为空,并且构造该参数的context不能为空。构造该参数时,如果指定了templateType,需保证templateType是[PiPTemplateType](#piptemplatetype)类型;如果指定了controlGroups,需保证controlGroups与templateType匹配,详见[PiPControlGroup](#pipcontrolgroup12)。 |
162e41f4b71Sopenharmony_ci| contentNode       | [typeNode.XComponent](js-apis-arkui-frameNode.md#xcomponent12)    | 是         | 用于渲染画中画窗口中的内容。该参数不能为空。|
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci**返回值:**
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci| 类型                                                         | 说明                       |
167e41f4b71Sopenharmony_ci|------------------------------------------------------------|--------------------------|
168e41f4b71Sopenharmony_ci| Promise&lt;[PiPController](#pipcontroller)&gt;  | Promise对象。返回当前创建的画中画控制器。 |
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci**错误码:**
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                                                         |
175e41f4b71Sopenharmony_ci|-------|----------------------------------------------------------------------------------------------------------------------------------------------|
176e41f4b71Sopenharmony_ci| 401   | Params error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. |
177e41f4b71Sopenharmony_ci| 801   | Capability not supported.Failed to call the API due to limited device capabilities.                                                       |
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci**示例:**
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci```ts
182e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
183e41f4b71Sopenharmony_ciimport { PiPWindow, UIContext } from '@kit.ArkUI';
184e41f4b71Sopenharmony_ciimport { typeNode } from '@ohos.arkui.node';
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_cilet pipController: PiPWindow.PiPController | undefined = undefined;
187e41f4b71Sopenharmony_cilet xComponentController: XComponentController = new XComponentController();
188e41f4b71Sopenharmony_cilet context: UIContext | undefined = undefined; // 可传入UIContext或在布局中通过this.getUIContext()为context赋有效值
189e41f4b71Sopenharmony_cilet xComponent = typeNode.createNode(context, 'XComponent');
190e41f4b71Sopenharmony_cixComponent.initialize({
191e41f4b71Sopenharmony_ci  id:'xcomponent',
192e41f4b71Sopenharmony_ci  type:XComponentType.SURFACE,
193e41f4b71Sopenharmony_ci  controller:xComponentController
194e41f4b71Sopenharmony_ci});
195e41f4b71Sopenharmony_cilet contentWidth: number = 800; // 假设当前内容宽度800px。
196e41f4b71Sopenharmony_cilet contentHeight: number = 600; // 假设当前内容高度600px。
197e41f4b71Sopenharmony_cilet config: PiPWindow.PiPConfiguration = {
198e41f4b71Sopenharmony_ci  context: getContext(this),
199e41f4b71Sopenharmony_ci  componentController: xComponentController,
200e41f4b71Sopenharmony_ci  templateType: PiPWindow.PiPTemplateType.VIDEO_PLAY,
201e41f4b71Sopenharmony_ci  contentWidth: contentWidth,
202e41f4b71Sopenharmony_ci  contentHeight: contentHeight
203e41f4b71Sopenharmony_ci};
204e41f4b71Sopenharmony_ci
205e41f4b71Sopenharmony_cilet promise : Promise<PiPWindow.PiPController> = PiPWindow.create(config, xComponent);
206e41f4b71Sopenharmony_cipromise.then((data : PiPWindow.PiPController) => {
207e41f4b71Sopenharmony_ci  pipController = data;
208e41f4b71Sopenharmony_ci  console.info(`Succeeded in creating pip controller. Data:${data}`);
209e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
210e41f4b71Sopenharmony_ci  console.error(`Failed to create pip controller. Cause:${err.code}, message:${err.message}`);
211e41f4b71Sopenharmony_ci});
212e41f4b71Sopenharmony_ci```
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci## PiPConfiguration
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci创建画中画控制器时的参数。
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci| 名称                  | 类型                                                                         | 必填  | 说明                                                                                                                                                                                                                                                                                                                                        |
223e41f4b71Sopenharmony_ci|---------------------|----------------------------------------------------------------------------|-----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
224e41f4b71Sopenharmony_ci| context             | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是   | 表示上下文环境。                                                                                                                                                                                                                                                                                                                                  |
225e41f4b71Sopenharmony_ci| componentController | [XComponentController](arkui-ts/ts-basic-components-xcomponent.md)         | 是   | 表示原始[XComponent](arkui-ts/ts-basic-components-xcomponent.md)控制器。                                                                                                                                                                                                                                                                      |
226e41f4b71Sopenharmony_ci| navigationId        | string                                                                     | 否   | 当前page导航id。<br/>1、UIAbility使用[Navigation](arkui-ts/ts-basic-components-navigation.md)管理页面,需要设置Navigation控件的id属性,并将该id设置给画中画控制器,确保还原场景下能够从画中画窗口恢复到原页面。<br/>2、UIAbility使用[Router](js-apis-router.md)管理页面时,无需设置navigationId。<br/>3、UIAbility只有单页面时,无需设置navigationId,还原场景下也能够从画中画窗口恢复到原页面。 |
227e41f4b71Sopenharmony_ci| templateType        | [PiPTemplateType](#piptemplatetype)                                        | 否   | 模板类型,用以区分视频播放、视频通话或视频会议。                                                                                                                                                                                                                                                                                                                  |
228e41f4b71Sopenharmony_ci| contentWidth        | number                                                                     | 否   | 原始内容宽度,单位为px。用于确定画中画窗口比例。当[使用typeNode的方式](#pipwindowcreate12)创建PiPController时,不传值则默认为1920。当[不使用typeNode的方式](#pipwindowcreate)创建PiPController时,不传值则默认为[XComponent](arkui-ts/ts-basic-components-xcomponent.md)组件的宽度。                                                                 |
229e41f4b71Sopenharmony_ci| contentHeight       | number                                                                     | 否   | 原始内容高度,单位为px。用于确定画中画窗口比例。用于确定画中画窗口比例。当[使用typeNode的方式](#pipwindowcreate12)创建PiPController时,不传值则默认为1080。当[不使用typeNode的方式](#pipwindowcreate)创建PiPController时,不传值则默认为[XComponent](arkui-ts/ts-basic-components-xcomponent.md)组件的高度。                                                                 |
230e41f4b71Sopenharmony_ci| controlGroups<sup>12+</sup>       | Array<[PiPControlGroup](#pipcontrolgroup12)>                               | 否   | 画中画控制面板的可选控件组列表,应用可以对此进行配置以决定是否显示。如果应用没有配置,面板将显示基础控件(如视频播放控件组的播放/暂停控件);如果应用选择配置,则最多可以选择三个控件。从API version 12开始支持此参数。                                                                                                                                                                                                                                                 |
231e41f4b71Sopenharmony_ci| customUIController<sup>12+</sup>      | [NodeController](js-apis-arkui-nodeController.md)           | 否   | 用于实现在画中画界面内容上方展示自定义UI功能。从API version 12开始支持此参数。                                                                                                                                                                                                                                                                                           |
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci## PiPTemplateType
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci画中画媒体类型枚举。
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci| 名称            | 值   | 说明                                   |
242e41f4b71Sopenharmony_ci|---------------|-----|--------------------------------------|
243e41f4b71Sopenharmony_ci| VIDEO_PLAY    | 0   | 表示将要切换为画中画播放的媒体类型是视频,系统依此加载视频播放模板。   |
244e41f4b71Sopenharmony_ci| VIDEO_CALL    | 1   | 表示将要切换为画中画播放的媒体类型是视频通话,系统依此加载视频通话模板。 |
245e41f4b71Sopenharmony_ci| VIDEO_MEETING | 2   | 表示将要切换为画中画播放的媒体类型是视频会议,系统依此加载视频会议模板。 |
246e41f4b71Sopenharmony_ci| VIDEO_LIVE    | 3   | 表示将要切换为画中画播放的媒体类型是直播,系统依此加载直播模板。     |
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci## PiPState
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci画中画生命周期状态枚举。
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci| 名称                   | 值   | 说明                    |
257e41f4b71Sopenharmony_ci|----------------------|-----|-----------------------|
258e41f4b71Sopenharmony_ci| ABOUT_TO_START       | 1   | 表示画中画将要启动。            |
259e41f4b71Sopenharmony_ci| STARTED              | 2   | 表示画中画已经启动。            |
260e41f4b71Sopenharmony_ci| ABOUT_TO_STOP        | 3   | 表示画中画将要停止。            |
261e41f4b71Sopenharmony_ci| STOPPED              | 4   | 表示画中画已经停止。            |
262e41f4b71Sopenharmony_ci| ABOUT_TO_RESTORE     | 5   | 表示画中画将从小窗播放恢复到原始播放界面。 |
263e41f4b71Sopenharmony_ci| ERROR                | 6   | 表示画中画生命周期执行过程出现了异常。   |
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci## PiPControlGroup<sup>12+</sup>
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_citype PiPControlGroup = VideoPlayControlGroup | VideoCallControlGroup | VideoMeetingControlGroup | VideoLiveControlGroup
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci画中画控制面板的可选控件组列表,应用可以配置是否显示可选控件。默认情况下控制面板只显示基础控件(如视频播放控件组的播放/暂停控件)。
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci| 类型                                              | 说明          |
276e41f4b71Sopenharmony_ci|-------------------------------------------------|-------------|
277e41f4b71Sopenharmony_ci| [VideoPlayControlGroup](#videoplaycontrolgroup12)     | 视频播放控件组。 |
278e41f4b71Sopenharmony_ci| [VideoCallControlGroup](#videocallcontrolgroup12)       | 视频通话控件组。 |
279e41f4b71Sopenharmony_ci| [VideoMeetingControlGroup](#videomeetingcontrolgroup12) | 视频会议控件组。 |
280e41f4b71Sopenharmony_ci| [VideoLiveControlGroup](#videolivecontrolgroup12)     | 视频直播控件组。 |
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci## VideoPlayControlGroup<sup>12+</sup>
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_ci视频播放控件组枚举。仅当[PiPTemplateType](#piptemplatetype)为VIDEO_PLAY时使用。
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci| 名称                   | 值   | 说明                    |
292e41f4b71Sopenharmony_ci|----------------------|-----|-----------------------|
293e41f4b71Sopenharmony_ci| VIDEO_PREVIOUS_NEXT       | 101   | 视频上一个/下一个控件组。<br/>与视频快进/后退控件组为互斥控件组。如添加视频快进/后退控件组,则不可添加该控件组。           |
294e41f4b71Sopenharmony_ci| FAST_FORWARD_BACKWARD    | 102   | 视频快进/后退控件组。<br/>与视频上一个/下一个控件组为互斥控件组。如添加视频上一个/下一个控件组,则不可添加该控件组。           |
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci## VideoCallControlGroup<sup>12+</sup>
297e41f4b71Sopenharmony_ci
298e41f4b71Sopenharmony_ci视频通话控件组枚举。仅当[PiPTemplateType](#piptemplatetype) 为VIDEO_CALL时使用。
299e41f4b71Sopenharmony_ci
300e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci| 名称                   | 值   | 说明                    |
305e41f4b71Sopenharmony_ci|----------------------|-----|-----------------------|
306e41f4b71Sopenharmony_ci| MICROPHONE_SWITCH       | 201   | 打开/关闭麦克风控件组。            |
307e41f4b71Sopenharmony_ci| HANG_UP_BUTTON    | 202   | 挂断控件组。           |
308e41f4b71Sopenharmony_ci| CAMERA_SWITCH    | 203   | 打开/关闭摄像头控件组。            |
309e41f4b71Sopenharmony_ci| MUTE_SWITCH    | 204   | 静音控件组。            |
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ci## VideoMeetingControlGroup<sup>12+</sup>
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci视频会议控件组枚举。仅当[PiPTemplateType](#piptemplatetype) 为VIDEO_MEETING时使用。
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ci| 名称                   | 值   | 说明                    |
320e41f4b71Sopenharmony_ci|----------------------|-----|-----------------------|
321e41f4b71Sopenharmony_ci| HANG_UP_BUTTON       | 301   | 挂断控件组。          |
322e41f4b71Sopenharmony_ci| CAMERA_SWITCH    | 302   | 打开/关闭摄像头控件组。           |
323e41f4b71Sopenharmony_ci| MUTE_SWITCH    | 303   | 静音控件组。            |
324e41f4b71Sopenharmony_ci| MICROPHONE_SWITCH       | 304   | 打开/关闭麦克风控件组。            |
325e41f4b71Sopenharmony_ci
326e41f4b71Sopenharmony_ci## VideoLiveControlGroup<sup>12+</sup>
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci视频直播控件组枚举。仅当[PiPTemplateType](#piptemplatetype) 为VIDEO_LIVE时使用。
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
331e41f4b71Sopenharmony_ci
332e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
333e41f4b71Sopenharmony_ci
334e41f4b71Sopenharmony_ci| 名称                   | 值   | 说明                    |
335e41f4b71Sopenharmony_ci|----------------------|-----|-----------------------|
336e41f4b71Sopenharmony_ci| VIDEO_PLAY_PAUSE     | 401   |   播放/暂停直播控件组   |
337e41f4b71Sopenharmony_ci| MUTE_SWITCH         | 402   | 静音控件组。            |
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci## PiPActionEventType
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_citype PiPActionEventType = PiPVideoActionEvent | PiPCallActionEvent | PiPMeetingActionEvent | PiPLiveActionEvent
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci画中画控制面板控件动作事件类型,支持以下四种。
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci| 类型                                              | 说明          |
350e41f4b71Sopenharmony_ci|-------------------------------------------------|-------------|
351e41f4b71Sopenharmony_ci| [PiPVideoActionEvent](#pipvideoactionevent)     | 视频播放控制面板控件事件类型。 |
352e41f4b71Sopenharmony_ci| [PiPCallActionEvent](#pipcallactionevent)       | 视频通话控制面板控件事件类型。 |
353e41f4b71Sopenharmony_ci| [PiPMeetingActionEvent](#pipmeetingactionevent) | 视频会议控制面板控件事件类型。 |
354e41f4b71Sopenharmony_ci| [PiPLiveActionEvent](#pipliveactionevent)       | 直播控制面板控件事件类型。   |
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ci## PiPVideoActionEvent
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_citype PiPVideoActionEvent = 'playbackStateChanged' | 'nextVideo' | 'previousVideo' | 'fastForward' | 'fastBackward'
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ci视频播放控制事件类型。
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
365e41f4b71Sopenharmony_ci
366e41f4b71Sopenharmony_ci| 类型                         | 说明                                      |
367e41f4b71Sopenharmony_ci| ---------------------------- | ----------------------------------------- |
368e41f4b71Sopenharmony_ci| 'playbackStateChanged'       | 播放状态发生了变化。                      |
369e41f4b71Sopenharmony_ci| 'nextVideo'                  | 播放下一个视频。                          |
370e41f4b71Sopenharmony_ci| 'previousVideo'              | 播放上一个视频。                          |
371e41f4b71Sopenharmony_ci| 'fastForward'<sup>12+</sup>  | 视频进度快进。从API version 12 开始支持。 |
372e41f4b71Sopenharmony_ci| 'fastBackward'<sup>12+</sup> | 视频进度后退。从API version 12 开始支持。 |
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci## PiPCallActionEvent
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_citype PiPCallActionEvent = 'hangUp' | 'micStateChanged' | 'videoStateChanged' | 'voiceStateChanged'
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_ci视频通话控制事件类型。
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci| 类型                | 说明               |
385e41f4b71Sopenharmony_ci| ------------------- | ------------------ |
386e41f4b71Sopenharmony_ci| 'hangUp'             | 挂断视频通话。     |
387e41f4b71Sopenharmony_ci| 'micStateChanged'   | 打开或关闭麦克风。 |
388e41f4b71Sopenharmony_ci| 'videoStateChanged' | 打开或关闭摄像头。 |
389e41f4b71Sopenharmony_ci| 'voiceStateChanged'<sup>12+</sup> | 静音或解除静音。   |
390e41f4b71Sopenharmony_ci
391e41f4b71Sopenharmony_ci
392e41f4b71Sopenharmony_ci## PiPMeetingActionEvent
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_citype PiPMeetingActionEvent = 'hangUp' | 'voiceStateChanged' | 'videoStateChanged' | 'micStateChanged'
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci视频会议控制事件类型。
397e41f4b71Sopenharmony_ci
398e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
399e41f4b71Sopenharmony_ci
400e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_ci| 类型                | 说明               |
403e41f4b71Sopenharmony_ci| ------------------- | ------------------ |
404e41f4b71Sopenharmony_ci| 'hangUp'            | 挂断视频会议。     |
405e41f4b71Sopenharmony_ci| 'voiceStateChanged' | 静音或解除静音。   |
406e41f4b71Sopenharmony_ci| 'videoStateChanged' | 打开或关闭摄像头。 |
407e41f4b71Sopenharmony_ci| 'micStateChanged'<sup>12+</sup>   | 打开或关闭麦克风。 |
408e41f4b71Sopenharmony_ci
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci## PiPLiveActionEvent
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_citype PiPLiveActionEvent = 'playbackStateChanged' | 'voiceStateChanged'
413e41f4b71Sopenharmony_ci
414e41f4b71Sopenharmony_ci直播控制事件类型。
415e41f4b71Sopenharmony_ci
416e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
417e41f4b71Sopenharmony_ci
418e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_ci| 类型                   | 说明             |
421e41f4b71Sopenharmony_ci| ---------------------- | ---------------- |
422e41f4b71Sopenharmony_ci| 'playbackStateChanged' | 播放或暂停直播。 |
423e41f4b71Sopenharmony_ci| 'voiceStateChanged'<sup>12+</sup> | 静音或解除静音。   |
424e41f4b71Sopenharmony_ci
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci## PiPControlStatus<sup>12+</sup>
427e41f4b71Sopenharmony_ci
428e41f4b71Sopenharmony_ci控制面板控件状态枚举。
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci| 名称                   | 值   | 说明                    |
435e41f4b71Sopenharmony_ci|----------------------|-----|-----------------------|
436e41f4b71Sopenharmony_ci| PLAY       | 1   | 播放。          |
437e41f4b71Sopenharmony_ci| PAUSE    | 0   | 暂停。           |
438e41f4b71Sopenharmony_ci| OPEN    | 1   | 打开。            |
439e41f4b71Sopenharmony_ci| CLOSE       | 0   | 关闭。          |
440e41f4b71Sopenharmony_ci
441e41f4b71Sopenharmony_ci## PiPControlType<sup>12+</sup>
442e41f4b71Sopenharmony_ci
443e41f4b71Sopenharmony_ci控制面板控件类型枚举。
444e41f4b71Sopenharmony_ci
445e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
446e41f4b71Sopenharmony_ci
447e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
448e41f4b71Sopenharmony_ci
449e41f4b71Sopenharmony_ci| 名称                | 值   | 说明                                   |
450e41f4b71Sopenharmony_ci|-------------------|-----|--------------------------------------|
451e41f4b71Sopenharmony_ci| VIDEO_PLAY_PAUSE  | 0   | 播放/暂停控件。   |
452e41f4b71Sopenharmony_ci| VIDEO_PREVIOUS    | 1   | 视频上一个控件。 |
453e41f4b71Sopenharmony_ci| VIDEO_NEXT        | 2   | 视频下一个控件。 |
454e41f4b71Sopenharmony_ci| FAST_FORWARD      | 3   | 视频快进控件     |
455e41f4b71Sopenharmony_ci| FAST_BACKWARD     | 4   | 视频快退控件。   |
456e41f4b71Sopenharmony_ci| HANG_UP_BUTTON           | 5   | 挂断控件。 |
457e41f4b71Sopenharmony_ci| MICROPHONE_SWITCH | 6  | 打开/关闭麦克风控件。 |
458e41f4b71Sopenharmony_ci| CAMERA_SWITCH     | 7   | 打开/关闭摄像头控件。     |
459e41f4b71Sopenharmony_ci| MUTE_SWITCH       | 8   | 打开/关闭静音控件。     |
460e41f4b71Sopenharmony_ci
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ci## ControlPanelActionEventCallback<sup>12+</sup>
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_citype ControlPanelActionEventCallback = (event: PiPActionEventType, status?: number) => void
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_ci描述画中画控制面板控件动作事件回调。
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
471e41f4b71Sopenharmony_ci
472e41f4b71Sopenharmony_ci**参数:**
473e41f4b71Sopenharmony_ci
474e41f4b71Sopenharmony_ci| 参数名                       | 类型           | 必填    | 说明                                |
475e41f4b71Sopenharmony_ci|--------------------------|--------------|--------------|-----------------------------------|
476e41f4b71Sopenharmony_ci| event       |  [PiPActionEventType](#pipactioneventtype)       | 是 | 回调画中画控制面板控件动作事件类型。<br/>应用依据控件动作事件做相应处理,如触发'playbackStateChanged'事件时,需要开始或停止视频。 |
477e41f4b71Sopenharmony_ci| status | number | 否 | 表示可切换状态的控件当前的状态,如具备打开和关闭两种状态的麦克风控件组、摄像头控件组和静音控件组,打开为1,关闭为0。其余控件该参数返回默认值-1。 |
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ci## ControlEventParam<sup>12+</sup>
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ci画中画控制面板控件动作回调的参数。
482e41f4b71Sopenharmony_ci
483e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci| 名称                       | 类型           | 必填    | 说明                                                                                                                                |
488e41f4b71Sopenharmony_ci|--------------------------|--------------|--------------|-----------------------------------------------------------------------------------------------------------------------------------|
489e41f4b71Sopenharmony_ci| controlType       |  [PiPControlType](#pipcontroltype12)      | 是 | 回调画中画控制面板控件动作事件类型。应用依据控件类型做相应处理,如视频模板中暂停/播放控件被点击时,需要开始或停止视频。                                                                      |
490e41f4b71Sopenharmony_ci| status | [PiPControlStatus](#pipcontrolstatus12) | 否 | 表示可切换状态的控件当前的状态,如具备打开和关闭两种状态的麦克风控件组、摄像头控件组和静音控件组,打开为PiPControlStatus.PLAY,关闭为PiPControlStatus.PAUSE。如不具备开/关和播放/暂停状态的挂断控件默认返回值为-1。 |
491e41f4b71Sopenharmony_ci
492e41f4b71Sopenharmony_ci## PiPController
493e41f4b71Sopenharmony_ci
494e41f4b71Sopenharmony_ci画中画控制器实例。用于启动、停止画中画以及更新回调注册等。
495e41f4b71Sopenharmony_ci
496e41f4b71Sopenharmony_ci下列API示例中都需先使用[PiPWindow.create()](#pipwindowcreate)方法获取到PiPController实例,再通过此实例调用对应方法。
497e41f4b71Sopenharmony_ci
498e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
499e41f4b71Sopenharmony_ci
500e41f4b71Sopenharmony_ci### startPiP
501e41f4b71Sopenharmony_ci
502e41f4b71Sopenharmony_cistartPiP(): Promise&lt;void&gt;
503e41f4b71Sopenharmony_ci
504e41f4b71Sopenharmony_ci启动画中画,使用Promise异步回调。
505e41f4b71Sopenharmony_ci
506e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
507e41f4b71Sopenharmony_ci
508e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_ci**返回值:**
511e41f4b71Sopenharmony_ci
512e41f4b71Sopenharmony_ci| 类型                     | 说明                 |
513e41f4b71Sopenharmony_ci|------------------------|--------------------|
514e41f4b71Sopenharmony_ci| Promise&lt;void&gt;    | 无返回结果的Promise对象。   |
515e41f4b71Sopenharmony_ci
516e41f4b71Sopenharmony_ci**错误码:**
517e41f4b71Sopenharmony_ci
518e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[窗口错误码](errorcode-window.md)。
519e41f4b71Sopenharmony_ci
520e41f4b71Sopenharmony_ci| 错误码ID    | 错误信息                                                |
521e41f4b71Sopenharmony_ci|------------|--------------------------------------------------------|
522e41f4b71Sopenharmony_ci| 1300012    | The PiP window state is abnormal.                      |
523e41f4b71Sopenharmony_ci| 1300013    | Failed to create the PiP window.                       |
524e41f4b71Sopenharmony_ci| 1300014    | PiP internal error.                                    |
525e41f4b71Sopenharmony_ci| 1300015    | Repeated PiP operation.                                |
526e41f4b71Sopenharmony_ci
527e41f4b71Sopenharmony_ci**示例:**
528e41f4b71Sopenharmony_ci
529e41f4b71Sopenharmony_ci```ts
530e41f4b71Sopenharmony_cilet promise : Promise<void> = pipController.startPiP();
531e41f4b71Sopenharmony_cipromise.then(() => {
532e41f4b71Sopenharmony_ci  console.info(`Succeeded in starting pip.`);
533e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
534e41f4b71Sopenharmony_ci  console.error(`Failed to start pip. Cause:${err.code}, message:${err.message}`);
535e41f4b71Sopenharmony_ci});
536e41f4b71Sopenharmony_ci```
537e41f4b71Sopenharmony_ci
538e41f4b71Sopenharmony_ci### stopPiP
539e41f4b71Sopenharmony_ci
540e41f4b71Sopenharmony_cistopPiP(): Promise&lt;void&gt;
541e41f4b71Sopenharmony_ci
542e41f4b71Sopenharmony_ci停止画中画,使用Promise异步回调。
543e41f4b71Sopenharmony_ci
544e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
545e41f4b71Sopenharmony_ci
546e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
547e41f4b71Sopenharmony_ci
548e41f4b71Sopenharmony_ci**返回值:**
549e41f4b71Sopenharmony_ci
550e41f4b71Sopenharmony_ci| 类型                   | 说明                  |
551e41f4b71Sopenharmony_ci|----------------------|---------------------|
552e41f4b71Sopenharmony_ci| Promise&lt;void&gt;  | 无返回结果的Promise对象。    |
553e41f4b71Sopenharmony_ci
554e41f4b71Sopenharmony_ci**错误码:**
555e41f4b71Sopenharmony_ci
556e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[窗口错误码](errorcode-window.md)。
557e41f4b71Sopenharmony_ci
558e41f4b71Sopenharmony_ci| 错误码ID   | 错误信息                          |
559e41f4b71Sopenharmony_ci|---------|-----------------------------------|
560e41f4b71Sopenharmony_ci| 1300011 | Failed to destroy the PiP window. |
561e41f4b71Sopenharmony_ci| 1300012 | The PiP window state is abnormal. |
562e41f4b71Sopenharmony_ci| 1300015 | Repeated PiP operation.           |
563e41f4b71Sopenharmony_ci
564e41f4b71Sopenharmony_ci**示例:**
565e41f4b71Sopenharmony_ci
566e41f4b71Sopenharmony_ci```ts
567e41f4b71Sopenharmony_cilet promise : Promise<void> = pipController.stopPiP();
568e41f4b71Sopenharmony_cipromise.then(() => {
569e41f4b71Sopenharmony_ci  console.info(`Succeeded in stopping pip.`);
570e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
571e41f4b71Sopenharmony_ci  console.error(`Failed to stop pip. Cause:${err.code}, message:${err.message}`);
572e41f4b71Sopenharmony_ci});
573e41f4b71Sopenharmony_ci```
574e41f4b71Sopenharmony_ci
575e41f4b71Sopenharmony_ci### setAutoStartEnabled
576e41f4b71Sopenharmony_ci
577e41f4b71Sopenharmony_cisetAutoStartEnabled(enable: boolean): void
578e41f4b71Sopenharmony_ci
579e41f4b71Sopenharmony_ci设置是否需要在返回桌面时自动启动画中画。
580e41f4b71Sopenharmony_ci
581e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
582e41f4b71Sopenharmony_ci
583e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
584e41f4b71Sopenharmony_ci
585e41f4b71Sopenharmony_ci**参数:**
586e41f4b71Sopenharmony_ci
587e41f4b71Sopenharmony_ci| 参数名      | 类型        | 必填    | 说明                              |
588e41f4b71Sopenharmony_ci|----------|-----------|-------|---------------------------------|
589e41f4b71Sopenharmony_ci| enable   | boolean   | 是     | 如返回桌面时需自动启动画中画,则该参数配置为true,否则为false。若设置中自动启动画中画开关为关闭状态,就算该参数配置为true,应用返回桌面时也不会自动启动画中画窗口。  |
590e41f4b71Sopenharmony_ci
591e41f4b71Sopenharmony_ci**示例:**
592e41f4b71Sopenharmony_ci
593e41f4b71Sopenharmony_ci```ts
594e41f4b71Sopenharmony_cilet enable: boolean = true;
595e41f4b71Sopenharmony_cipipController.setAutoStartEnabled(enable);
596e41f4b71Sopenharmony_ci```
597e41f4b71Sopenharmony_ci
598e41f4b71Sopenharmony_ci### updateContentSize
599e41f4b71Sopenharmony_ci
600e41f4b71Sopenharmony_ciupdateContentSize(width: number, height: number): void
601e41f4b71Sopenharmony_ci
602e41f4b71Sopenharmony_ci当媒体源切换时,向画中画控制器更新媒体源尺寸信息。
603e41f4b71Sopenharmony_ci
604e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
605e41f4b71Sopenharmony_ci
606e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
607e41f4b71Sopenharmony_ci
608e41f4b71Sopenharmony_ci**参数:**
609e41f4b71Sopenharmony_ci
610e41f4b71Sopenharmony_ci| 参数名    | 类型     | 必填  | 说明                                     |
611e41f4b71Sopenharmony_ci|--------|--------|-----|----------------------------------------|
612e41f4b71Sopenharmony_ci| width  | number | 是   | 表示媒体内容宽度,必须为大于0的数字,单位为px。用于更新画中画窗口比例。  |
613e41f4b71Sopenharmony_ci| height | number | 是   | 表示媒体内容高度,必须为大于0的数字,单位为px。用于更新画中画窗口比例。  |
614e41f4b71Sopenharmony_ci
615e41f4b71Sopenharmony_ci**错误码:**
616e41f4b71Sopenharmony_ci
617e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
618e41f4b71Sopenharmony_ci
619e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                        |
620e41f4b71Sopenharmony_ci|-------|-------------------------------------------------------------------------------------------------------------|
621e41f4b71Sopenharmony_ci| 401   | Params error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
622e41f4b71Sopenharmony_ci
623e41f4b71Sopenharmony_ci**示例:**
624e41f4b71Sopenharmony_ci
625e41f4b71Sopenharmony_ci```ts
626e41f4b71Sopenharmony_cilet width: number = 540; // 假设当前内容宽度变为540px。
627e41f4b71Sopenharmony_cilet height: number = 960; // 假设当前内容高度变为960px。
628e41f4b71Sopenharmony_cipipController.updateContentSize(width, height);
629e41f4b71Sopenharmony_ci```
630e41f4b71Sopenharmony_ci
631e41f4b71Sopenharmony_ci### updatePiPControlStatus<sup>12+</sup>
632e41f4b71Sopenharmony_ciupdatePiPControlStatus(controlType: PiPControlType, status: PiPControlStatus): void
633e41f4b71Sopenharmony_ci
634e41f4b71Sopenharmony_ci更新控制面板控件功能状态。
635e41f4b71Sopenharmony_ci
636e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
637e41f4b71Sopenharmony_ci
638e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
639e41f4b71Sopenharmony_ci
640e41f4b71Sopenharmony_ci**参数:**
641e41f4b71Sopenharmony_ci
642e41f4b71Sopenharmony_ci| 参数名    | 类型     | 必填  | 说明                                                                                                 |
643e41f4b71Sopenharmony_ci|--------|--------|-----|----------------------------------------------------------------------------------------------------|
644e41f4b71Sopenharmony_ci| controlType  | [PiPControlType](#pipcontroltype12)  | 是   | 表示画中画控制面板控件类型。目前仅支持VIDEO_PLAY_PAUSE、MICROPHONE_SWITCH、CAMERA_SWITCH和MUTE_SWITCH这几种控件类型,传入其他控件类型无效。 |
645e41f4b71Sopenharmony_ci| status | [PiPControlStatus](#pipcontrolstatus12)  | 是   | 表示画中画控制面板控件状态。                                                                                     |
646e41f4b71Sopenharmony_ci
647e41f4b71Sopenharmony_ci**错误码:**
648e41f4b71Sopenharmony_ci
649e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
650e41f4b71Sopenharmony_ci
651e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                        |
652e41f4b71Sopenharmony_ci|-------|-------------------------------------------------------------------------------------------------------------|
653e41f4b71Sopenharmony_ci| 401   | Params error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed |
654e41f4b71Sopenharmony_ci
655e41f4b71Sopenharmony_ci**示例:**
656e41f4b71Sopenharmony_ci
657e41f4b71Sopenharmony_ci```ts
658e41f4b71Sopenharmony_cilet controlType: PiPWindow.PiPControlType = PiPWindow.PiPControlType.VIDEO_PLAY_PAUSE; // 视频播放控制面板中播放/暂停控件。
659e41f4b71Sopenharmony_cilet status: PiPWindow.PiPControlStatus = PiPWindow.PiPControlStatus.PLAY; // 视频播放控制面板中播放/暂停控件为播放状态。
660e41f4b71Sopenharmony_cipipController.updatePiPControlStatus(controlType, status);
661e41f4b71Sopenharmony_ci```
662e41f4b71Sopenharmony_ci
663e41f4b71Sopenharmony_ci### setPiPControlEnabled<sup>12+</sup>
664e41f4b71Sopenharmony_cisetPiPControlEnabled(controlType: PiPControlType, enabled: boolean): void
665e41f4b71Sopenharmony_ci
666e41f4b71Sopenharmony_ci更新控制面板控件使能状态。
667e41f4b71Sopenharmony_ci
668e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
669e41f4b71Sopenharmony_ci
670e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
671e41f4b71Sopenharmony_ci
672e41f4b71Sopenharmony_ci**参数:**
673e41f4b71Sopenharmony_ci
674e41f4b71Sopenharmony_ci| 参数名         | 类型     | 必填  | 说明                                     |
675e41f4b71Sopenharmony_ci|-------------|--------|-----|----------------------------------------|
676e41f4b71Sopenharmony_ci| controlType | [PiPControlType](#pipcontroltype12)  | 是   | 表示画中画控制面板控件类型。  |
677e41f4b71Sopenharmony_ci| enabled     | boolean | 是   | 表示画中画控制面板控件使能状态。true表示控件为可使用状态,false则为禁用状态。  |
678e41f4b71Sopenharmony_ci
679e41f4b71Sopenharmony_ci**错误码:**
680e41f4b71Sopenharmony_ci
681e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
682e41f4b71Sopenharmony_ci
683e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                                                                                                        |
684e41f4b71Sopenharmony_ci|-------|-------------------------------------------------------------------------------------------------------------|
685e41f4b71Sopenharmony_ci| 401   | Params error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. 3. Parameter verification failed |
686e41f4b71Sopenharmony_ci
687e41f4b71Sopenharmony_ci**示例:**
688e41f4b71Sopenharmony_ci
689e41f4b71Sopenharmony_ci```ts
690e41f4b71Sopenharmony_cilet controlType: PiPWindow.PiPControlType = PiPWindow.PiPControlType.VIDEO_PLAY_PAUSE; // 视频播放控制面板中播放/暂停控件。
691e41f4b71Sopenharmony_cilet enabled: boolean = false; // 视频播放控制面板中播放/暂停控件为禁用状态。
692e41f4b71Sopenharmony_cipipController.setPiPControlEnabled(controlType, enabled);
693e41f4b71Sopenharmony_ci```
694e41f4b71Sopenharmony_ci
695e41f4b71Sopenharmony_ci### on('stateChange')
696e41f4b71Sopenharmony_ci
697e41f4b71Sopenharmony_cion(type: 'stateChange', callback: (state: PiPState, reason: string) => void): void
698e41f4b71Sopenharmony_ci
699e41f4b71Sopenharmony_ci开启画中画生命周期状态的监听。
700e41f4b71Sopenharmony_ci
701e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
702e41f4b71Sopenharmony_ci
703e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
704e41f4b71Sopenharmony_ci
705e41f4b71Sopenharmony_ci**参数:**
706e41f4b71Sopenharmony_ci
707e41f4b71Sopenharmony_ci| 参数名        | 类型        | 必填   | 说明                                                                                                |
708e41f4b71Sopenharmony_ci|------------|-----------|------|---------------------------------------------------------------------------------------------------|
709e41f4b71Sopenharmony_ci| type       | string    | 是    | 监听事件,固定为'stateChange',即画中画生命周期状态变化事件。                                                             |
710e41f4b71Sopenharmony_ci| callback   | function  | 是    | 回调生命周期状态变化事件以及原因:<br/>state:[PiPState](#pipstate),表示当前画中画生命周期状态;<br/>reason:string,表示当前生命周期的切换原因。 |
711e41f4b71Sopenharmony_ci
712e41f4b71Sopenharmony_ci**示例:**
713e41f4b71Sopenharmony_ci
714e41f4b71Sopenharmony_ci```ts
715e41f4b71Sopenharmony_cipipController.on('stateChange', (state: PiPWindow.PiPState, reason: string) => {
716e41f4b71Sopenharmony_ci  let curState: string = '';
717e41f4b71Sopenharmony_ci  switch (state) {
718e41f4b71Sopenharmony_ci    case PiPWindow.PiPState.ABOUT_TO_START:
719e41f4b71Sopenharmony_ci      curState = 'ABOUT_TO_START';
720e41f4b71Sopenharmony_ci      break;
721e41f4b71Sopenharmony_ci    case PiPWindow.PiPState.STARTED:
722e41f4b71Sopenharmony_ci      curState = 'STARTED';
723e41f4b71Sopenharmony_ci      break;
724e41f4b71Sopenharmony_ci    case PiPWindow.PiPState.ABOUT_TO_STOP:
725e41f4b71Sopenharmony_ci      curState = 'ABOUT_TO_STOP';
726e41f4b71Sopenharmony_ci      break;
727e41f4b71Sopenharmony_ci    case PiPWindow.PiPState.STOPPED:
728e41f4b71Sopenharmony_ci      curState = 'STOPPED';
729e41f4b71Sopenharmony_ci      break;
730e41f4b71Sopenharmony_ci    case PiPWindow.PiPState.ABOUT_TO_RESTORE:  
731e41f4b71Sopenharmony_ci      curState = 'ABOUT_TO_RESTORE';
732e41f4b71Sopenharmony_ci      break;
733e41f4b71Sopenharmony_ci    case PiPWindow.PiPState.ERROR:
734e41f4b71Sopenharmony_ci      curState = 'ERROR';
735e41f4b71Sopenharmony_ci      break;
736e41f4b71Sopenharmony_ci    default:
737e41f4b71Sopenharmony_ci      break;
738e41f4b71Sopenharmony_ci  }
739e41f4b71Sopenharmony_ci  console.info('stateChange:' + curState + ' reason:' + reason);
740e41f4b71Sopenharmony_ci});
741e41f4b71Sopenharmony_ci```
742e41f4b71Sopenharmony_ci
743e41f4b71Sopenharmony_ci### off('stateChange')
744e41f4b71Sopenharmony_ci
745e41f4b71Sopenharmony_cioff(type: 'stateChange'): void
746e41f4b71Sopenharmony_ci
747e41f4b71Sopenharmony_ci关闭画中画生命周期状态的监听。
748e41f4b71Sopenharmony_ci
749e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
750e41f4b71Sopenharmony_ci
751e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
752e41f4b71Sopenharmony_ci
753e41f4b71Sopenharmony_ci**参数:**
754e41f4b71Sopenharmony_ci
755e41f4b71Sopenharmony_ci| 参数名       | 类型            | 必填    | 说明                                     |
756e41f4b71Sopenharmony_ci|-----------|---------------|-------|----------------------------------------|
757e41f4b71Sopenharmony_ci| type      | string        | 是     | 监听事件,固定为'stateChange',即画中画生命周期状态变化事件。  |
758e41f4b71Sopenharmony_ci
759e41f4b71Sopenharmony_ci**示例:**
760e41f4b71Sopenharmony_ci
761e41f4b71Sopenharmony_ci```ts
762e41f4b71Sopenharmony_cipipController.off('stateChange');
763e41f4b71Sopenharmony_ci```
764e41f4b71Sopenharmony_ci
765e41f4b71Sopenharmony_ci### on('controlPanelActionEvent')
766e41f4b71Sopenharmony_ci
767e41f4b71Sopenharmony_cion(type: 'controlPanelActionEvent', callback: ControlPanelActionEventCallback): void
768e41f4b71Sopenharmony_ci
769e41f4b71Sopenharmony_ci开启画中画控制面板控件动作事件的监听。推荐使用[on('controlEvent')](#oncontrolevent12)来开启画中画控制面板控件动作事件的监听。
770e41f4b71Sopenharmony_ci
771e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
772e41f4b71Sopenharmony_ci
773e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
774e41f4b71Sopenharmony_ci
775e41f4b71Sopenharmony_ci**参数:**
776e41f4b71Sopenharmony_ci
777e41f4b71Sopenharmony_ci| 参数名      | 类型         | 必填    | 说明                                                |
778e41f4b71Sopenharmony_ci|----------|------------|-------|---------------------------------------------------|
779e41f4b71Sopenharmony_ci| type     | string     | 是     | 监听事件,固定为'controlPanelActionEvent',即画中画控制面板控件动作事件。 |
780e41f4b71Sopenharmony_ci| callback | [ControlPanelActionEventCallback](#controlpanelactioneventcallback12)  | 是     | 描述画中画控制面板控件动作事件回调。                                |
781e41f4b71Sopenharmony_ci
782e41f4b71Sopenharmony_ci**示例:**
783e41f4b71Sopenharmony_ci
784e41f4b71Sopenharmony_ci```ts
785e41f4b71Sopenharmony_cipipController.on('controlPanelActionEvent', (event: PiPWindow.PiPActionEventType, status?: number) => {
786e41f4b71Sopenharmony_ci  switch (event) {
787e41f4b71Sopenharmony_ci    case 'playbackStateChanged':
788e41f4b71Sopenharmony_ci      if (status === 0) {
789e41f4b71Sopenharmony_ci        //停止视频
790e41f4b71Sopenharmony_ci      } else if (status === 1) {
791e41f4b71Sopenharmony_ci        //播放视频
792e41f4b71Sopenharmony_ci      }
793e41f4b71Sopenharmony_ci      break;
794e41f4b71Sopenharmony_ci    case 'nextVideo':
795e41f4b71Sopenharmony_ci      // 切换到下一个视频
796e41f4b71Sopenharmony_ci      break;
797e41f4b71Sopenharmony_ci    case 'previousVideo':
798e41f4b71Sopenharmony_ci      // 切换到上一个视频
799e41f4b71Sopenharmony_ci      break;
800e41f4b71Sopenharmony_ci    case 'fastForward':
801e41f4b71Sopenharmony_ci      // 视频进度快进
802e41f4b71Sopenharmony_ci      break;
803e41f4b71Sopenharmony_ci    case 'fastBackward':
804e41f4b71Sopenharmony_ci      // 视频进度后退
805e41f4b71Sopenharmony_ci      break;
806e41f4b71Sopenharmony_ci    default:
807e41f4b71Sopenharmony_ci      break;
808e41f4b71Sopenharmony_ci  }
809e41f4b71Sopenharmony_ci  console.info('registerActionEventCallback, event:' + event);
810e41f4b71Sopenharmony_ci});
811e41f4b71Sopenharmony_ci```
812e41f4b71Sopenharmony_ci
813e41f4b71Sopenharmony_ci### on('controlEvent')<sup>12+</sup>
814e41f4b71Sopenharmony_ci
815e41f4b71Sopenharmony_cion(type: 'controlEvent', callback: Callback&lt;ControlEventParam&gt;): void
816e41f4b71Sopenharmony_ci
817e41f4b71Sopenharmony_ci开启画中画控制面板控件动作事件的监听。
818e41f4b71Sopenharmony_ci
819e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
820e41f4b71Sopenharmony_ci
821e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
822e41f4b71Sopenharmony_ci
823e41f4b71Sopenharmony_ci**参数:**
824e41f4b71Sopenharmony_ci
825e41f4b71Sopenharmony_ci| 参数名      | 类型                                                  | 必填    | 说明                                     |
826e41f4b71Sopenharmony_ci|----------|-----------------------------------------------------|-------|----------------------------------------|
827e41f4b71Sopenharmony_ci| type     | string                                              | 是     | 监听事件,固定为'controlEvent',即画中画控制面板控件动作事件。 |
828e41f4b71Sopenharmony_ci| callback | Callback<[ControlEventParam](#controleventparam12)> | 是     | 描述画中画控制面板控件动作事件回调。                     |
829e41f4b71Sopenharmony_ci
830e41f4b71Sopenharmony_ci**示例:**
831e41f4b71Sopenharmony_ci
832e41f4b71Sopenharmony_ci```ts
833e41f4b71Sopenharmony_cipipController.on('controlEvent', (control) => {
834e41f4b71Sopenharmony_ci  switch (control.controlType) {
835e41f4b71Sopenharmony_ci    case PiPWindow.PiPControlType.VIDEO_PLAY_PAUSE:
836e41f4b71Sopenharmony_ci      if (control.status === PiPWindow.PiPControlStatus.PAUSE) {
837e41f4b71Sopenharmony_ci        //停止视频
838e41f4b71Sopenharmony_ci      } else if (control.status === PiPWindow.PiPControlStatus.PLAY) {
839e41f4b71Sopenharmony_ci        //播放视频
840e41f4b71Sopenharmony_ci      }
841e41f4b71Sopenharmony_ci      break;
842e41f4b71Sopenharmony_ci    case PiPWindow.PiPControlType.VIDEO_NEXT:
843e41f4b71Sopenharmony_ci      // 切换到下一个视频
844e41f4b71Sopenharmony_ci      break;
845e41f4b71Sopenharmony_ci    case PiPWindow.PiPControlType.VIDEO_PREVIOUS:
846e41f4b71Sopenharmony_ci      // 切换到上一个视频
847e41f4b71Sopenharmony_ci      break;
848e41f4b71Sopenharmony_ci    case PiPWindow.PiPControlType.FAST_FORWARD:
849e41f4b71Sopenharmony_ci      // 视频进度快进
850e41f4b71Sopenharmony_ci      break;
851e41f4b71Sopenharmony_ci    case PiPWindow.PiPControlType.FAST_BACKWARD:
852e41f4b71Sopenharmony_ci      // 视频进度后退
853e41f4b71Sopenharmony_ci      break;
854e41f4b71Sopenharmony_ci    default:
855e41f4b71Sopenharmony_ci      break;
856e41f4b71Sopenharmony_ci  }
857e41f4b71Sopenharmony_ci  console.info('registerControlEventCallback, controlType:' + control.controlType + ', status' + control.status);
858e41f4b71Sopenharmony_ci});
859e41f4b71Sopenharmony_ci```
860e41f4b71Sopenharmony_ci
861e41f4b71Sopenharmony_ci### off('controlPanelActionEvent')
862e41f4b71Sopenharmony_ci
863e41f4b71Sopenharmony_cioff(type: 'controlPanelActionEvent'): void
864e41f4b71Sopenharmony_ci
865e41f4b71Sopenharmony_ci关闭画中画控制面板控件动作事件的监听。推荐使用[off('controlEvent')](#offcontrolevent12)来关闭画中画控制面板控件动作事件的监听。
866e41f4b71Sopenharmony_ci
867e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
868e41f4b71Sopenharmony_ci
869e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
870e41f4b71Sopenharmony_ci
871e41f4b71Sopenharmony_ci**参数:**
872e41f4b71Sopenharmony_ci
873e41f4b71Sopenharmony_ci| 参数名        | 类型                           | 必填   | 说明                                            |
874e41f4b71Sopenharmony_ci|------------|------------------------------|------|-----------------------------------------------|
875e41f4b71Sopenharmony_ci| type       | string                       | 是    | 监听事件,固定为'controlPanelActionEvent',即画中画控制面板控件动作事件。   |
876e41f4b71Sopenharmony_ci
877e41f4b71Sopenharmony_ci**示例:**
878e41f4b71Sopenharmony_ci
879e41f4b71Sopenharmony_ci```ts
880e41f4b71Sopenharmony_cipipController.off('controlPanelActionEvent');
881e41f4b71Sopenharmony_ci```
882e41f4b71Sopenharmony_ci
883e41f4b71Sopenharmony_ci### off('controlEvent')<sup>12+</sup>
884e41f4b71Sopenharmony_ci
885e41f4b71Sopenharmony_cioff(type: 'controlEvent', callback?: Callback&lt;ControlEventParam&gt;): void
886e41f4b71Sopenharmony_ci
887e41f4b71Sopenharmony_ci关闭画中画控制面板控件动作事件的监听。
888e41f4b71Sopenharmony_ci
889e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
890e41f4b71Sopenharmony_ci
891e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Window.SessionManager
892e41f4b71Sopenharmony_ci
893e41f4b71Sopenharmony_ci**参数:**
894e41f4b71Sopenharmony_ci
895e41f4b71Sopenharmony_ci| 参数名        | 类型                                                  | 必填 | 说明                                                     |
896e41f4b71Sopenharmony_ci|------------|-----------------------------------------------------|----|--------------------------------------------------------|
897e41f4b71Sopenharmony_ci| type       | string                                              | 是  | 监听事件,固定为'controlEvent',即画中画控制面板控件动作事件。                 |
898e41f4b71Sopenharmony_ci| callback | Callback<[ControlEventParam](#controleventparam12)> | 否  | 描述画中画控制面板控件动作事件回调。如果不传该参数时,解除type为'controlEvent'的所有回调。 |
899e41f4b71Sopenharmony_ci
900e41f4b71Sopenharmony_ci**示例:**
901e41f4b71Sopenharmony_ci
902e41f4b71Sopenharmony_ci```ts
903e41f4b71Sopenharmony_cipipController.off('controlEvent', () => {});
904e41f4b71Sopenharmony_ci```