• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# oh_window_pip.h
2
3## 概述
4
5定义画中画功能的相关接口,包含创建、删除画中画控制器,以及启动、停止画中画等。主要用于视频播放、直播、视频通话或视频会议场景下,以小窗(画中画)模式呈现内容。
6
7**引用文件:** <window_manager/oh_window_pip.h>
8
9**库:** libnative_window_manager.so
10
11**系统能力:** SystemCapability.Window.SessionManager
12
13**起始版本:** 20
14
15**相关模块:** [WindowManager](capi-windowmanager.md)
16
17## 汇总
18
19### 枚举
20
21| 名称 | typedef关键字 | 描述 |
22| -- | -- | -- |
23| [PictureInPicture_PipTemplateType](#pictureinpicture_piptemplatetype) | PictureInPicture_PipTemplateType | 画中画模板类型。 |
24| [PictureInPicture_PipControlGroup](#pictureinpicture_pipcontrolgroup) | PictureInPicture_PipControlGroup | 画中画控制面板的控件组类型。 |
25| [PictureInPicture_PipControlType](#pictureinpicture_pipcontroltype) | PictureInPicture_PipControlType | 控制面板控件类型枚举。 |
26| [PictureInPicture_PipControlStatus](#pictureinpicture_pipcontrolstatus) | PictureInPicture_PipControlStatus | 控制面板控件状态枚举。 |
27| [PictureInPicture_PipState](#pictureinpicture_pipstate) | PictureInPicture_PipState | 画中画生命周期状态枚举。 |
28
29### 函数
30
31| 名称 | typedef关键字 | 描述 |
32| -- | -- | -- |
33| [typedef void (\*WebPipStartPipCallback)(uint32_t controllerId, uint8_t requestId, uint64_t surfaceId)](#webpipstartpipcallback) | WebPipStartPipCallback | 定义画中画窗口创建完成的回调函数。 |
34| [typedef void (\*WebPipLifecycleCallback)(uint32_t controllerId, PictureInPicture_PipState state, int32_t errcode)](#webpiplifecyclecallback) | WebPipLifecycleCallback | 定义画中画窗口的生命周期回调函数。 |
35| [typedef void (\*WebPipControlEventCallback)(uint32_t controllerId, PictureInPicture_PipControlType controlType,PictureInPicture_PipControlStatus status)](#webpipcontroleventcallback) | WebPipControlEventCallback | 定义画中画窗口的控件点击事件回调函数。 |
36| [typedef void (\*WebPipResizeCallback)(uint32_t controllerId, uint32_t width, uint32_t height, double scale)](#webpipresizecallback) | WebPipResizeCallback | 定义画中画窗口的尺寸变化回调函数。 |
37| [int32_t OH_PictureInPicture_CreatePipConfig(PictureInPicture_PipConfig* pipConfig)](#oh_pictureinpicture_createpipconfig) | - | 创建画中画参数配置器。 |
38| [int32_t OH_PictureInPicture_DestroyPipConfig(PictureInPicture_PipConfig* pipConfig)](#oh_pictureinpicture_destroypipconfig) | - | 销毁画中画参数配置器。 |
39| [int32_t OH_PictureInPicture_SetPipMainWindowId(PictureInPicture_PipConfig pipConfig, uint32_t mainWindowId)](#oh_pictureinpicture_setpipmainwindowid) | - | 设置拉起画中画的主窗口Id。 |
40| [int32_t OH_PictureInPicture_SetPipTemplateType(PictureInPicture_PipConfig pipConfig,PictureInPicture_PipTemplateType pipTemplateType)](#oh_pictureinpicture_setpiptemplatetype) | - | 设置画中画模板类型,默认为视频播放。 |
41| [int32_t OH_PictureInPicture_SetPipRect(PictureInPicture_PipConfig pipConfig, uint32_t width, uint32_t height)](#oh_pictureinpicture_setpiprect) | - | 设置画中画窗口大小,用于计算尺寸比例。 |
42| [int32_t OH_PictureInPicture_SetPipControlGroup(PictureInPicture_PipConfig pipConfig,PictureInPicture_PipControlGroup* controlGroup, uint8_t controlGroupLength)](#oh_pictureinpicture_setpipcontrolgroup) | - | 设置画中画控件组,需保证控件组与模板类型匹配。 |
43| [int32_t OH_PictureInPicture_SetPipNapiEnv(PictureInPicture_PipConfig pipConfig, void* env)](#oh_pictureinpicture_setpipnapienv) | - | 设置拉起画中画的运行时环境。 |
44| [int32_t OH_PictureInPicture_CreatePip(PictureInPicture_PipConfig pipConfig, uint32_t* controllerId)](#oh_pictureinpicture_createpip) | - | 创建画中画控制器。 |
45| [int32_t OH_PictureInPicture_DeletePip(uint32_t controllerId)](#oh_pictureinpicture_deletepip) | - | 删除画中画控制器。 |
46| [int32_t OH_PictureInPicture_StartPip(uint32_t controllerId)](#oh_pictureinpicture_startpip) | - | 开启画中画。 |
47| [int32_t OH_PictureInPicture_StopPip(uint32_t controllerId)](#oh_pictureinpicture_stoppip) | - | 关闭画中画。 |
48| [int32_t OH_PictureInPicture_UpdatePipContentSize(uint32_t controllerId, uint32_t width, uint32_t height)](#oh_pictureinpicture_updatepipcontentsize) | - | 当媒体源切换时,向画中画控制器更新媒体源尺寸信息。 |
49| [int32_t OH_PictureInPicture_UpdatePipControlStatus(uint32_t controllerId, PictureInPicture_PipControlType controlType,PictureInPicture_PipControlStatus status)](#oh_pictureinpicture_updatepipcontrolstatus) | - | 更新画中画控制面板控件功能状态。 |
50| [int32_t OH_PictureInPicture_SetPipControlEnabled(uint32_t controllerId, PictureInPicture_PipControlType controlType,bool enabled)](#oh_pictureinpicture_setpipcontrolenabled) | - | 设置控制面板控件使能状态。 |
51| [int32_t OH_PictureInPicture_RegisterStartPipCallback(uint32_t controllerId, WebPipStartPipCallback callback)](#oh_pictureinpicture_registerstartpipcallback) | - | 开启画中画surface创建完成的监听。 |
52| [int32_t OH_PictureInPicture_UnregisterStartPipCallback(uint32_t controllerId, WebPipStartPipCallback callback)](#oh_pictureinpicture_unregisterstartpipcallback) | - | 关闭画中画surface创建完成的监听。 |
53| [int32_t OH_PictureInPicture_UnregisterAllStartPipCallbacks(uint32_t controllerId)](#oh_pictureinpicture_unregisterallstartpipcallbacks) | - | 关闭所有画中画surface创建完成的监听。 |
54| [int32_t OH_PictureInPicture_RegisterLifecycleListener(uint32_t controllerId, WebPipLifecycleCallback callback)](#oh_pictureinpicture_registerlifecyclelistener) | - | 开启画中画生命周期状态的监听。 |
55| [int32_t OH_PictureInPicture_UnregisterLifecycleListener(uint32_t controllerId, WebPipLifecycleCallback callback)](#oh_pictureinpicture_unregisterlifecyclelistener) | - | 关闭画中画生命周期状态的监听。 |
56| [int32_t OH_PictureInPicture_UnregisterAllLifecycleListeners(uint32_t controllerId)](#oh_pictureinpicture_unregisteralllifecyclelisteners) | - | 关闭所有画中画生命周期状态的监听。 |
57| [int32_t OH_PictureInPicture_RegisterControlEventListener(uint32_t controllerId, WebPipControlEventCallback callback)](#oh_pictureinpicture_registercontroleventlistener) | - | 开启画中画控制面板控件动作事件的监听。 |
58| [int32_t OH_PictureInPicture_UnregisterControlEventListener(uint32_t controllerId, WebPipControlEventCallback callback)](#oh_pictureinpicture_unregistercontroleventlistener) | - | 关闭画中画控制面板控件动作事件的监听。 |
59| [int32_t OH_PictureInPicture_UnregisterAllControlEventListeners(uint32_t controllerId)](#oh_pictureinpicture_unregisterallcontroleventlisteners) | - | 关闭所有画中画控制面板控件动作事件的监听。 |
60| [int32_t OH_PictureInPicture_RegisterResizeListener(uint32_t controllerId, WebPipResizeCallback callback)](#oh_pictureinpicture_registerresizelistener) | - | 开启画中画窗口尺寸变化事件的监听。 |
61| [int32_t OH_PictureInPicture_UnregisterResizeListener(uint32_t controllerId, WebPipResizeCallback callback)](#oh_pictureinpicture_unregisterresizelistener) | - | 关闭画中画窗口尺寸变化事件的监听。 |
62| [int32_t OH_PictureInPicture_UnregisterAllResizeListeners(uint32_t controllerId)](#oh_pictureinpicture_unregisterallresizelisteners) | - | 关闭所有画中画窗口尺寸变化事件的监听。 |
63| [int32_t OH_PictureInPicture_SetPipInitialSurfaceRect(uint32_t controllerId, int32_t positionX, int32_t positionY,uint32_t width, uint32_t height)](#oh_pictureinpicture_setpipinitialsurfacerect) | - | 设置画中画拉起动效开始时的位置和大小,可用于实现一镜到底效果。 |
64| [int32_t OH_PictureInPicture_UnsetPipInitialSurfaceRect(uint32_t controllerId)](#oh_pictureinpicture_unsetpipinitialsurfacerect) | - | 取消已设置的画中画拉起动效的起始位置和大小。 |
65
66## 枚举类型说明
67
68### PictureInPicture_PipTemplateType
69
70```
71enum PictureInPicture_PipTemplateType
72```
73
74**描述**
75
76画中画模板类型。
77
78**起始版本:** 20
79
80| 枚举项 | 描述 |
81| -- | -- |
82| VIDEO_PLAY = 0 | 表示将要切换为画中画播放的媒体类型是视频,系统依此加载视频播放模板。 |
83| VIDEO_CALL = 1 | 表示将要切换为画中画播放的媒体类型是视频通话,系统依此加载视频通话模板。 |
84| VIDEO_MEETING = 2 | 表示将要切换为画中画播放的媒体类型是视频会议,系统依此加载视频会议模板。 |
85| VIDEO_LIVE = 3 | 表示将要切换为画中画播放的媒体类型是直播,系统依此加载直播模板。 |
86
87### PictureInPicture_PipControlGroup
88
89```
90enum PictureInPicture_PipControlGroup
91```
92
93**描述**
94
95画中画控制面板的控件组类型。
96
97**起始版本:** 20
98
99| 枚举项 | 描述 |
100| -- | -- |
101| VIDEO_PLAY_VIDEO_PREVIOUS_NEXT = 101 | 视频播放模板的视频上一个/下一个控件组。与视频快进/后退控件组为互斥控件组。如添加视频快进/后退控件组,则不可添加该控件组。 |
102| VIDEO_PLAY_FAST_FORWARD_BACKWARD = 102 | 视频播放模板的视频快进/后退控件组。与视频上一个/下一个控件组为互斥控件组。如添加视频上一个/下一个控件组,则不可添加该控件组。 |
103| VIDEO_CALL_MICROPHONE_SWITCH = 201 | 视频通话模板的打开/关闭麦克风控件组。 |
104| VIDEO_CALL_HANG_UP_BUTTON = 202 | 视频通话模板的挂断控件组。 |
105| VIDEO_CALL_CAMERA_SWITCH = 203 | 视频通话模板的打开/关闭摄像头控件组。 |
106| VIDEO_CALL_MUTE_SWITCH = 204 | 视频通话模板的静音控件组。 |
107| VIDEO_MEETING_HANG_UP_BUTTON = 301 | 视频会议模板的挂断控件组。 |
108| VIDEO_MEETING_CAMERA_SWITCH = 302 | 视频会议模板的打开/关闭摄像头控件组。 |
109| VIDEO_MEETING_MUTE_SWITCH = 303 | 视频会议模板的静音控件组。 |
110| VIDEO_MEETING_MICROPHONE_SWITCH = 304 | 视频会议模板的打开/关闭麦克风控件组。 |
111| VIDEO_LIVE_VIDEO_PLAY_PAUSE = 401 | 直播模板的播放/暂停直播控件组。 |
112| VIDEO_LIVE_MUTE_SWITCH = 402 | 直播模板的静音控件组。 |
113
114### PictureInPicture_PipControlType
115
116```
117enum PictureInPicture_PipControlType
118```
119
120**描述**
121
122控制面板控件类型枚举。
123
124**起始版本:** 20
125
126| 枚举项 | 描述 |
127| -- | -- |
128| VIDEO_PLAY_PAUSE = 0 | 播放/暂停控件。 |
129| VIDEO_PREVIOUS = 1 | 视频上一个控件。 |
130| VIDEO_NEXT = 2 | 视频下一个控件。 |
131| FAST_FORWARD = 3 | 视频快进控件。 |
132| FAST_BACKWARD = 4 | 视频快退控件。 |
133| HANG_UP_BUTTON = 5 | 挂断控件。 |
134| MICROPHONE_SWITCH = 6 | 打开/关闭麦克风控件。 |
135| CAMERA_SWITCH = 7 | 打开/关闭摄像头控件。 |
136| MUTE_SWITCH = 8 | 打开/关闭静音控件。 |
137
138### PictureInPicture_PipControlStatus
139
140```
141enum PictureInPicture_PipControlStatus
142```
143
144**描述**
145
146控制面板控件状态枚举。
147
148**起始版本:** 20
149
150| 枚举项 | 描述 |
151| -- | -- |
152| PLAY = 1 | 视频播放状态。 |
153| PAUSE = 0 | 视频暂停状态。 |
154| OPEN = 1 | 摄像头/麦克风/静音控件的打开状态。 |
155| CLOSE = 0 | 摄像头/麦克风/静音控件的关闭状态。 |
156
157### PictureInPicture_PipState
158
159```
160enum PictureInPicture_PipState
161```
162
163**描述**
164
165画中画生命周期状态枚举。
166
167**起始版本:** 20
168
169| 枚举项 | 描述 |
170| -- | -- |
171| ABOUT_TO_START = 1 | 表示画中画将要启动。 |
172| STARTED = 2 | 表示画中画已经启动。 |
173| ABOUT_TO_STOP = 3 | 表示画中画将要停止。 |
174| STOPPED = 4 | 表示画中画已经停止。 |
175| ABOUT_TO_RESTORE = 5 | 表示画中画将从小窗播放恢复到原始播放界面。 |
176| ERROR = 6 | 表示画中画生命周期执行过程出现了异常。 |
177
178
179## 函数说明
180
181### WebPipStartPipCallback()
182
183```
184typedef void (*WebPipStartPipCallback)(uint32_t controllerId, uint8_t requestId, uint64_t surfaceId)
185```
186
187**描述**
188
189定义画中画窗口创建完成的回调函数。
190
191**起始版本:** 20
192
193
194**参数:**
195
196| 参数项 | 描述 |
197| -- | -- |
198| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
199|  uint8_t requestId | 请求Id,表示当前请求拉起画中画窗口的次数。 |
200|  uint64_t surfaceId | 画中画内部Xcomponent组件的surfaceId,用于应用自行渲染。 |
201
202### WebPipLifecycleCallback()
203
204```
205typedef void (*WebPipLifecycleCallback)(uint32_t controllerId, PictureInPicture_PipState state, int32_t errcode)
206```
207
208**描述**
209
210定义画中画窗口的生命周期回调函数。
211
212**起始版本:** 20
213
214
215**参数:**
216
217| 参数项 | 描述 |
218| -- | -- |
219| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
220|  PictureInPicture_PipState state | 当前画中画生命周期状态。 |
221|  int32_t errcode | 画中画接口的通用状态码。具体可见[WindowManager_ErrorCode](capi-oh-window-comm-h.md#windowmanager_errorcode)。 |
222
223### WebPipControlEventCallback()
224
225```
226typedef void (*WebPipControlEventCallback)(uint32_t controllerId, PictureInPicture_PipControlType controlType, PictureInPicture_PipControlStatus status)
227```
228
229**描述**
230
231定义画中画窗口的控件点击事件回调函数。
232
233**起始版本:** 20
234
235
236**参数:**
237
238| 参数项 | 描述 |
239| -- | -- |
240| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
241|  PictureInPicture_PipControlType controlType | 画中画控制面板的控件类型。 |
242| [PictureInPicture_PipControlStatus](#pictureinpicture_pipcontrolstatus) status | 画中画控制面板的控件状态。 |
243
244### WebPipResizeCallback()
245
246```
247typedef void (*WebPipResizeCallback)(uint32_t controllerId, uint32_t width, uint32_t height, double scale)
248```
249
250**描述**
251
252定义画中画窗口的尺寸变化回调函数。
253
254**起始版本:** 20
255
256
257**参数:**
258
259| 参数项 | 描述 |
260| -- | -- |
261| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
262|  uint32_t width | 画中画窗口宽度,单位为px,该参数为正整数,不大于屏幕宽。 |
263|  uint32_t height | 画中画窗口高度,单位为px,该参数为正整数,不大于屏幕高。 |
264|  double scale | 画中画窗口缩放比,显示大小相对于width和height的缩放比,该参数为浮点数,取值范围大于0.0,小于等于1.0。等于1表示画中画窗口的实际显示宽高值与width和height一样大。 |
265
266### OH_PictureInPicture_CreatePipConfig()
267
268```
269int32_t OH_PictureInPicture_CreatePipConfig(PictureInPicture_PipConfig* pipConfig)
270```
271
272**描述**
273
274创建画中画参数配置器。
275
276**起始版本:** 20
277
278
279**参数:**
280
281| 参数项 | 描述 |
282| -- | -- |
283| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md)* pipConfig | 用于接受创建的画中画参数配置器。 |
284
285**返回:**
286
287| 类型 | 说明 |
288| -- | -- |
289| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。 |
290
291### OH_PictureInPicture_DestroyPipConfig()
292
293```
294int32_t OH_PictureInPicture_DestroyPipConfig(PictureInPicture_PipConfig* pipConfig)
295```
296
297**描述**
298
299销毁画中画参数配置器。
300
301**起始版本:** 20
302
303
304**参数:**
305
306| 参数项 | 描述 |
307| -- | -- |
308| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md)* pipConfig | 画中画参数配置器。 |
309
310**返回:**
311
312| 类型 | 说明 |
313| -- | -- |
314| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。 |
315
316### OH_PictureInPicture_SetPipMainWindowId()
317
318```
319int32_t OH_PictureInPicture_SetPipMainWindowId(PictureInPicture_PipConfig pipConfig, uint32_t mainWindowId)
320```
321
322**描述**
323
324设置拉起画中画的主窗口Id。
325
326**起始版本:** 20
327
328
329**参数:**
330
331| 参数项 | 描述 |
332| -- | -- |
333| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md) pipConfig | 画中画参数配置器。 |
334| uint32_t mainWindowId | 拉起画中画的主窗口Id。 |
335
336**返回:**
337
338| 类型 | 说明 |
339| -- | -- |
340| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。 |
341
342### OH_PictureInPicture_SetPipTemplateType()
343
344```
345int32_t OH_PictureInPicture_SetPipTemplateType(PictureInPicture_PipConfig pipConfig, PictureInPicture_PipTemplateType pipTemplateType)
346```
347
348**描述**
349
350设置画中画模板类型,默认为视频播放。
351
352**起始版本:** 20
353
354
355**参数:**
356
357| 参数项 | 描述 |
358| -- | -- |
359| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md) pipConfig | 画中画参数配置器。 |
360| [PictureInPicture_PipTemplateType](#pictureinpicture_piptemplatetype) pipTemplateType | 画中画模板类型。 |
361
362**返回:**
363
364| 类型 | 说明 |
365| -- | -- |
366| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。 |
367
368### OH_PictureInPicture_SetPipRect()
369
370```
371int32_t OH_PictureInPicture_SetPipRect(PictureInPicture_PipConfig pipConfig, uint32_t width, uint32_t height)
372```
373
374**描述**
375
376设置画中画窗口大小,用于计算尺寸比例。
377
378**起始版本:** 20
379
380
381**参数:**
382
383| 参数项 | 描述 |
384| -- | -- |
385| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md) pipConfig | 画中画参数配置器。 |
386| uint32_t width | 原始内容宽度,单位为px,该参数应为正整数。用于确定画中画窗口比例。 |
387| uint32_t height | 原始内容高度,单位为px,该参数应为正整数。用于确定画中画窗口比例。 |
388
389**返回:**
390
391| 类型 | 说明 |
392| -- | -- |
393| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。 |
394
395### OH_PictureInPicture_SetPipControlGroup()
396
397```
398int32_t OH_PictureInPicture_SetPipControlGroup(PictureInPicture_PipConfig pipConfig, PictureInPicture_PipControlGroup* controlGroup, uint8_t controlGroupLength)
399```
400
401**描述**
402
403设置画中画控件组,需保证控件组与模板类型匹配。
404
405**起始版本:** 20
406
407
408**参数:**
409
410| 参数项 | 描述 |
411| -- | -- |
412| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md) pipConfig | 画中画参数配置器。 |
413| [PictureInPicture_PipControlGroup](#pictureinpicture_pipcontrolgroup)* controlGroup | 画中画控制面板的可选控件组列表,应用可以对此进行配置以决定是否显示。应用未配置时,面板显示基础控件(如视频播放控件组的播放/暂停控件);应用选择配置时,则最多可以选择三个控件。 |
414| uint8_t controlGroupLength | 画中画控件组数量,取值范围为0 ~ 3。 |
415
416**返回:**
417
418| 类型 | 说明 |
419| -- | -- |
420| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。 |
421
422### OH_PictureInPicture_SetPipNapiEnv()
423
424```
425int32_t OH_PictureInPicture_SetPipNapiEnv(PictureInPicture_PipConfig pipConfig, void* env)
426```
427
428**描述**
429
430设置拉起画中画的运行时环境。
431
432**起始版本:** 20
433
434
435**参数:**
436
437| 参数项 | 描述 |
438| -- | -- |
439| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md) pipConfig | 画中画参数配置器。 |
440| void* env | napi的环境指针。 |
441
442**返回:**
443
444| 类型 | 说明 |
445| -- | -- |
446| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。 |
447
448### OH_PictureInPicture_CreatePip()
449
450```
451int32_t OH_PictureInPicture_CreatePip(PictureInPicture_PipConfig pipConfig, uint32_t* controllerId)
452```
453
454**描述**
455
456创建画中画控制器。
457
458**起始版本:** 20
459
460
461**参数:**
462
463| 参数项 | 描述 |
464| -- | -- |
465| [PictureInPicture_PipConfig](capi-pictureinpicture-pipconfig.md) pipConfig | 画中画参数配置器。 |
466| uint32_t* controllerId | 用于接收创建画中画控制器的id。 |
467
468**返回:**
469
470| 类型 | 说明 |
471| -- | -- |
472| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
473
474### OH_PictureInPicture_DeletePip()
475
476```
477int32_t OH_PictureInPicture_DeletePip(uint32_t controllerId)
478```
479
480**描述**
481
482删除画中画控制器。
483
484**起始版本:** 20
485
486
487**参数:**
488
489| 参数项 | 描述 |
490| -- | -- |
491| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
492
493**返回:**
494
495| 类型 | 说明 |
496| -- | -- |
497| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。 |
498
499### OH_PictureInPicture_StartPip()
500
501```
502int32_t OH_PictureInPicture_StartPip(uint32_t controllerId)
503```
504
505**描述**
506
507开启画中画。
508
509**起始版本:** 20
510
511
512**参数:**
513
514| 参数项 | 描述 |
515| -- | -- |
516| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
517
518**返回:**
519
520| 类型 | 说明 |
521| -- | -- |
522| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_STATE_ABNORMAL,表示画中画窗口状态异常。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_CREATE_FAILED,表示画中画窗口创建失败。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_REPEATED_OPERATION,表示画中画窗口重复操作。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。 |
523
524### OH_PictureInPicture_StopPip()
525
526```
527int32_t OH_PictureInPicture_StopPip(uint32_t controllerId)
528```
529
530**描述**
531
532关闭画中画。
533
534**起始版本:** 20
535
536
537**参数:**
538
539| 参数项 | 描述 |
540| -- | -- |
541| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
542
543**返回:**
544
545| 类型 | 说明 |
546| -- | -- |
547| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_DESTROY_FAILED,表示画中画窗口销毁失败。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_STATE_ABNORMAL,表示画中画窗口状态异常。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_REPEATED_OPERATION,表示画中画窗口重复操作。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。 |
548
549### OH_PictureInPicture_UpdatePipContentSize()
550
551```
552int32_t OH_PictureInPicture_UpdatePipContentSize(uint32_t controllerId, uint32_t width, uint32_t height)
553```
554
555**描述**
556
557当媒体源切换时,向画中画控制器更新媒体源尺寸信息。
558
559**起始版本:** 20
560
561
562**参数:**
563
564| 参数项 | 描述 |
565| -- | -- |
566| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
567| uint32_t width | 表示媒体内容宽度,单位为px,该参数应为正整数。用于更新画中画窗口比例。 |
568| uint32_t height | 表示媒体内容高度,单位为px,该参数应为正整数。用于更新画中画窗口比例。 |
569
570**返回:**
571
572| 类型 | 说明 |
573| -- | -- |
574| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
575
576### OH_PictureInPicture_UpdatePipControlStatus()
577
578```
579int32_t OH_PictureInPicture_UpdatePipControlStatus(uint32_t controllerId, PictureInPicture_PipControlType controlType, PictureInPicture_PipControlStatus status)
580```
581
582**描述**
583
584更新画中画控制面板控件功能状态。
585
586**起始版本:** 20
587
588
589**参数:**
590
591| 参数项 | 描述 |
592| -- | -- |
593| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
594| [PictureInPicture_PipControlType](#pictureinpicture_pipcontroltype) controlType | 表示画中画控制面板控件类型。目前仅支持VIDEO_PLAY_PAUSE、MICROPHONE_SWITCH、CAMERA_SWITCH和MUTE_SWITCH这几种控件类型,传入其他控件类型无效。 |
595| [PictureInPicture_PipControlStatus](#pictureinpicture_pipcontrolstatus) status | 表示画中画控制面板控件状态。 |
596
597**返回:**
598
599| 类型 | 说明 |
600| -- | -- |
601| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
602
603### OH_PictureInPicture_SetPipControlEnabled()
604
605```
606int32_t OH_PictureInPicture_SetPipControlEnabled(uint32_t controllerId, PictureInPicture_PipControlType controlType, bool enabled)
607```
608
609**描述**
610
611设置控制面板控件使能状态。
612
613**起始版本:** 20
614
615
616**参数:**
617
618| 参数项 | 描述 |
619| -- | -- |
620| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
621| [PictureInPicture_PipControlType](#pictureinpicture_pipcontroltype) controlType | 表示画中画控制面板控件类型。 |
622| bool enabled | 表示画中画控制面板控件使能状态。true表示控件为可使用状态,false则为禁用状态。 |
623
624**返回:**
625
626| 类型 | 说明 |
627| -- | -- |
628| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
629
630### OH_PictureInPicture_RegisterStartPipCallback()
631
632```
633int32_t OH_PictureInPicture_RegisterStartPipCallback(uint32_t controllerId, WebPipStartPipCallback callback)
634```
635
636**描述**
637
638开启画中画surface创建完成的监听。
639
640**起始版本:** 20
641
642
643**参数:**
644
645| 参数项 | 描述 |
646| -- | -- |
647| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
648| [WebPipStartPipCallback](#webpipstartpipcallback) callback | 画中画窗口创建完成的回调函数。 |
649
650**返回:**
651
652| 类型 | 说明 |
653| -- | -- |
654| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
655
656### OH_PictureInPicture_UnregisterStartPipCallback()
657
658```
659int32_t OH_PictureInPicture_UnregisterStartPipCallback(uint32_t controllerId, WebPipStartPipCallback callback)
660```
661
662**描述**
663
664关闭画中画surface创建完成的监听。
665
666**起始版本:** 20
667
668
669**参数:**
670
671| 参数项 | 描述 |
672| -- | -- |
673| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
674| [WebPipStartPipCallback](#webpipstartpipcallback) callback | 画中画窗口创建完成的回调函数。 |
675
676**返回:**
677
678| 类型 | 说明 |
679| -- | -- |
680| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
681
682### OH_PictureInPicture_UnregisterAllStartPipCallbacks()
683
684```
685int32_t OH_PictureInPicture_UnregisterAllStartPipCallbacks(uint32_t controllerId)
686```
687
688**描述**
689
690关闭所有画中画surface创建完成的监听。
691
692**起始版本:** 20
693
694
695**参数:**
696
697| 参数项 | 描述 |
698| -- | -- |
699| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
700
701**返回:**
702
703| 类型 | 说明 |
704| -- | -- |
705| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
706
707### OH_PictureInPicture_RegisterLifecycleListener()
708
709```
710int32_t OH_PictureInPicture_RegisterLifecycleListener(uint32_t controllerId, WebPipLifecycleCallback callback)
711```
712
713**描述**
714
715开启画中画生命周期状态的监听。
716
717**起始版本:** 20
718
719
720**参数:**
721
722| 参数项 | 描述 |
723| -- | -- |
724| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
725| [WebPipLifecycleCallback](#webpiplifecyclecallback) callback | 画中画窗口的生命周期回调函数。 |
726
727**返回:**
728
729| 类型 | 说明 |
730| -- | -- |
731| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
732
733### OH_PictureInPicture_UnregisterLifecycleListener()
734
735```
736int32_t OH_PictureInPicture_UnregisterLifecycleListener(uint32_t controllerId, WebPipLifecycleCallback callback)
737```
738
739**描述**
740
741关闭画中画生命周期状态的监听。
742
743**起始版本:** 20
744
745
746**参数:**
747
748| 参数项 | 描述 |
749| -- | -- |
750| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
751| [WebPipLifecycleCallback](#webpiplifecyclecallback) callback | 画中画窗口的生命周期回调函数。 |
752
753**返回:**
754
755| 类型 | 说明 |
756| -- | -- |
757| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
758
759### OH_PictureInPicture_UnregisterAllLifecycleListeners()
760
761```
762int32_t OH_PictureInPicture_UnregisterAllLifecycleListeners(uint32_t controllerId)
763```
764
765**描述**
766
767关闭所有画中画生命周期状态的监听。
768
769**起始版本:** 20
770
771
772**参数:**
773
774| 参数项 | 描述 |
775| -- | -- |
776| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
777
778**返回:**
779
780| 类型 | 说明 |
781| -- | -- |
782| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
783
784### OH_PictureInPicture_RegisterControlEventListener()
785
786```
787int32_t OH_PictureInPicture_RegisterControlEventListener(uint32_t controllerId, WebPipControlEventCallback callback)
788```
789
790**描述**
791
792开启画中画控制面板控件动作事件的监听。
793
794**起始版本:** 20
795
796
797**参数:**
798
799| 参数项 | 描述 |
800| -- | -- |
801| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
802| [WebPipControlEventCallback](#webpipcontroleventcallback) callback | 画中画窗口的控件点击事件回调函数。 |
803
804**返回:**
805
806| 类型 | 说明 |
807| -- | -- |
808| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
809
810### OH_PictureInPicture_UnregisterControlEventListener()
811
812```
813int32_t OH_PictureInPicture_UnregisterControlEventListener(uint32_t controllerId, WebPipControlEventCallback callback)
814```
815
816**描述**
817
818关闭画中画控制面板控件动作事件的监听。
819
820**起始版本:** 20
821
822
823**参数:**
824
825| 参数项 | 描述 |
826| -- | -- |
827| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
828| [WebPipControlEventCallback](#webpipcontroleventcallback) callback | 画中画窗口的控件点击事件回调函数。 |
829
830**返回:**
831
832| 类型 | 说明 |
833| -- | -- |
834| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
835
836### OH_PictureInPicture_UnregisterAllControlEventListeners()
837
838```
839int32_t OH_PictureInPicture_UnregisterAllControlEventListeners(uint32_t controllerId)
840```
841
842**描述**
843
844关闭所有画中画控制面板控件动作事件的监听。
845
846**起始版本:** 20
847
848
849**参数:**
850
851| 参数项 | 描述 |
852| -- | -- |
853| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
854
855**返回:**
856
857| 类型 | 说明 |
858| -- | -- |
859| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
860
861### OH_PictureInPicture_RegisterResizeListener()
862
863```
864int32_t OH_PictureInPicture_RegisterResizeListener(uint32_t controllerId, WebPipResizeCallback callback)
865```
866
867**描述**
868
869开启画中画窗口尺寸变化事件的监听。
870
871**起始版本:** 20
872
873
874**参数:**
875
876| 参数项 | 描述 |
877| -- | -- |
878| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
879| [WebPipResizeCallback](#webpipresizecallback) callback | 画中画窗口尺寸变化的回调函数。 |
880
881**返回:**
882
883| 类型 | 说明 |
884| -- | -- |
885| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
886
887### OH_PictureInPicture_UnregisterResizeListener()
888
889```
890int32_t OH_PictureInPicture_UnregisterResizeListener(uint32_t controllerId, WebPipResizeCallback callback)
891```
892
893**描述**
894
895关闭画中画窗口尺寸变化事件的监听。
896
897**起始版本:** 20
898
899
900**参数:**
901
902| 参数项 | 描述 |
903| -- | -- |
904| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
905| [WebPipResizeCallback](#webpipresizecallback) callback | 画中画窗口尺寸变化的回调函数。 |
906
907**返回:**
908
909| 类型 | 说明 |
910| -- | -- |
911| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
912
913### OH_PictureInPicture_UnregisterAllResizeListeners()
914
915```
916int32_t OH_PictureInPicture_UnregisterAllResizeListeners(uint32_t controllerId)
917```
918
919**描述**
920
921关闭所有画中画窗口尺寸变化事件的监听。
922
923**起始版本:** 20
924
925**参数:**
926
927| 参数项 | 描述 |
928| -- | -- |
929| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
930
931**返回:**
932
933| 类型 | 说明 |
934| -- | -- |
935| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示设备不支持画中画。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
936
937### OH_PictureInPicture_SetPipInitialSurfaceRect()
938
939```
940int32_t OH_PictureInPicture_SetPipInitialSurfaceRect(uint32_t controllerId, int32_t positionX, int32_t positionY,uint32_t width, uint32_t height)
941```
942
943**描述**
944
945设置画中画拉起动效开始时的位置和大小,可用于实现一镜到底效果。
946
947**起始版本:** 20
948
949**参数:**
950
951| 参数项 | 描述 |
952| -- | -- |
953| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
954| int32_t positionX | 拉起时画中画窗口相对页面左上角的X坐标,单位为px。 |
955| int32_t positionY | 拉起时画中画窗口相对页面左上角的Y坐标,单位为px。 |
956| uint32_t width | 拉起时画中画窗口的宽度,该参数值大于0,单位为px。 |
957| uint32_t height | 拉起时画中画窗口的高度,该参数值大于0,单位为px。 |
958
959**返回:**
960
961| 类型 | 说明 |
962| -- | -- |
963| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |
964
965### OH_PictureInPicture_UnsetPipInitialSurfaceRect()
966
967```
968int32_t OH_PictureInPicture_UnsetPipInitialSurfaceRect(uint32_t controllerId)
969```
970
971**描述**
972
973取消已设置的画中画拉起动效的起始位置和大小。
974
975**起始版本:** 20
976
977**参数:**
978
979| 参数项 | 描述 |
980| -- | -- |
981| uint32_t controllerId | 画中画控制器Id,为非负整数。 |
982
983**返回:**
984
985| 类型 | 说明 |
986| -- | -- |
987| int32_t | 返回结果代码。<br>返回OK,表示函数调用成功。<br>返回WINDOW_MANAGER_ERRORCODE_INCORRECT_PARAM,表示参数错误。<br>返回WINDOW_MANAGER_ERRORCODE_PIP_INTERNAL_ERROR,表示画中画内部错误。 |