• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# image_receiver_mdk.h
2<!--Kit: Image Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @aulight02-->
5<!--Designer: @liyang_bryan-->
6<!--Tester: @xchaosioda-->
7<!--Adviser: @zengyawen-->
8
9## 概述
10
11声明从native层获取图片数据的方法。
12
13**库:** libimage_receiver_ndk.z.so
14
15**引用文件:** <multimedia/image_framework/image_receiver_mdk.h>
16
17**系统能力:** SystemCapability.Multimedia.Image.Core
18
19**起始版本:** 10
20
21**相关模块:** [Image](capi-image.md)
22
23## 汇总
24
25### 结构体
26
27| 名称 | typedef关键字 | 描述 |
28| -- | -- | -- |
29| [OhosImageReceiverInfo](capi-image-ohosimagereceiverinfo.md) | - | 定义ImageReceiver的相关信息。 |
30| [ImageReceiverNative_](capi-image-imagereceivernative-.md) | ImageReceiverNative | 用于定义ImageReceiverNative数据类型名称。 |
31
32### 函数
33
34| 名称 | typedef关键字 | 描述 |
35| -- | -- | -- |
36| [typedef void (\*OH_Image_Receiver_On_Callback)()](#oh_image_receiver_on_callback) | OH_Image_Receiver_On_Callback | 定义native层图片的回调方法。 |
37| [int32_t OH_Image_Receiver_CreateImageReceiver(napi_env env, struct OhosImageReceiverInfo info, napi_value* res)](#oh_image_receiver_createimagereceiver) | - | 创建应用层ImageReceiver对象。 |
38| [ImageReceiverNative* OH_Image_Receiver_InitImageReceiverNative(napi_env env, napi_value source)](#oh_image_receiver_initimagereceivernative) | - | 通过应用层ImageReceiver对象初始化native层[ImageReceiverNative](capi-image-imagereceivernative-.md)对象。 |
39| [int32_t OH_Image_Receiver_GetReceivingSurfaceId(const ImageReceiverNative* native, char* id, size_t len)](#oh_image_receiver_getreceivingsurfaceid) | - | 通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取receiver的id。 |
40| [int32_t OH_Image_Receiver_ReadLatestImage(const ImageReceiverNative* native, napi_value* image)](#oh_image_receiver_readlatestimage) | - | 通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取最新的一张图片。 |
41| [int32_t OH_Image_Receiver_ReadNextImage(const ImageReceiverNative* native, napi_value* image)](#oh_image_receiver_readnextimage) | - | 通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取下一张图片。 |
42| [int32_t OH_Image_Receiver_On(const ImageReceiverNative* native, OH_Image_Receiver_On_Callback callback)](#oh_image_receiver_on) | - | 注册一个[OH_Image_Receiver_On_Callback](#oh_image_receiver_on_callback)回调事件。每当接收新图片,该回调事件就会响应。 |
43| [int32_t OH_Image_Receiver_GetSize(const ImageReceiverNative* native, struct OhosImageSize* size)](#oh_image_receiver_getsize) | - | 通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取ImageReceiver的大小。 |
44| [int32_t OH_Image_Receiver_GetCapacity(const ImageReceiverNative* native, int32_t* capacity)](#oh_image_receiver_getcapacity) | - | 通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取ImageReceiver的容量。 |
45| [int32_t OH_Image_Receiver_GetFormat(const ImageReceiverNative* native, int32_t* format)](#oh_image_receiver_getformat) | - | 通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取ImageReceiver的格式。 |
46| [int32_t OH_Image_Receiver_Release(ImageReceiverNative* native)](#oh_image_receiver_release) | - | 释放native层[ImageReceiverNative](capi-image-imagereceivernative-.md)对象。<br>注意,此方法不能释放应用层ImageReceiver对象。 |
47
48## 函数说明
49
50### OH_Image_Receiver_On_Callback()
51
52```
53typedef void (*OH_Image_Receiver_On_Callback)(void)
54```
55
56**描述**
57
58定义native层图片的回调方法。
59
60**起始版本:** 10
61
62### OH_Image_Receiver_CreateImageReceiver()
63
64```
65int32_t OH_Image_Receiver_CreateImageReceiver(napi_env env, struct OhosImageReceiverInfo info, napi_value* res)
66```
67
68**描述**
69
70创建应用层ImageReceiver对象。
71
72**起始版本:** 10
73
74
75**参数:**
76
77| 参数项 | 描述 |
78| -- | -- |
79| napi_env env | napi的环境指针。 |
80| struct [OhosImageReceiverInfo](capi-image-ohosimagereceiverinfo.md) info | ImageReceiver数据设置项。 |
81| napi_value* res | 应用层的ImageReceiver对象的指针。 |
82
83**返回:**
84
85| 类型 | 说明 |
86| -- | -- |
87| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br> IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br> IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br>IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_INVALID_PARAMETER:从surface获取参数失败。<br> IMAGE_RESULT_CREATE_SURFACE_FAILED:创建surface失败。<br> IMAGE_RESULT_SURFACE_GRALLOC_BUFFER_FAILED:surface分配内存失败。<br> IMAGE_RESULT_GET_SURFACE_FAILED:获取surface失败。<br> IMAGE_RESULT_MEDIA_RTSP_SURFACE_UNSUPPORT:媒体rtsp surface不支持。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。<br> IMAGE_RESULT_MEDIA_DATA_UNSUPPORT:媒体类型不支持。 |
88
89### OH_Image_Receiver_InitImageReceiverNative()
90
91```
92ImageReceiverNative* OH_Image_Receiver_InitImageReceiverNative(napi_env env, napi_value source)
93```
94
95**描述**
96
97通过应用层ImageReceiver对象初始化native层[ImageReceiverNative](capi-image-imagereceivernative-.md)对象。
98
99**起始版本:** 10
100
101
102**参数:**
103
104| 参数项 | 描述 |
105| -- | -- |
106| napi_env env | napi的环境指针。 |
107| napi_value source | napi的ImageReceiver对象。 |
108
109**返回:**
110
111| 类型 | 说明 |
112| -- | -- |
113| [ImageReceiverNative](capi-image-imagereceivernative-.md)* | 操作成功则返回ImageReceiverNative指针;如果操作失败,则返回nullptr。 |
114
115**参考:**
116
117[OH_Image_Receiver_Release](#oh_image_receiver_release)
118
119### OH_Image_Receiver_GetReceivingSurfaceId()
120
121```
122int32_t OH_Image_Receiver_GetReceivingSurfaceId(const ImageReceiverNative* native, char* id, size_t len)
123```
124
125**描述**
126
127通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取receiver的id。
128
129**起始版本:** 10
130
131
132**参数:**
133
134| 参数项 | 描述 |
135| -- | -- |
136| const [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
137| char* id | 指向字符缓冲区的指针,用于获取字符串的id。 |
138| size_t len | id所对应的字符缓冲区的大小。 |
139
140**返回:**
141
142| 类型 | 说明 |
143| -- | -- |
144| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br>IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_INVALID_PARAMETER:从surface获取参数失败。<br> IMAGE_RESULT_GET_SURFACE_FAILED:获取surface失败。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。<br> IMAGE_RESULT_MEDIA_DATA_UNSUPPORT:媒体类型不支持。 |
145
146### OH_Image_Receiver_ReadLatestImage()
147
148```
149int32_t OH_Image_Receiver_ReadLatestImage(const ImageReceiverNative* native, napi_value* image)
150```
151
152**描述**
153
154通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取最新的一张图片。
155
156注意,此接口需要在[OH_Image_Receiver_On_Callback](#oh_image_receiver_on_callback)回调后调用,才能正常的接收到数据。并且使用此接口返回Image对象创建的[ImageNative](capi-image-imagenative-.md)使用完毕后需要调用[OH_Image_Release](capi-image-mdk-h.md#oh_image_release)方法释放,释放后才可以继续接收新的数据。
157
158**起始版本:** 10
159
160
161**参数:**
162
163| 参数项 | 描述 |
164| -- | -- |
165| const [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
166| napi_value* image | 获取到的应用层的Image指针对象。 |
167
168**返回:**
169
170| 类型 | 说明 |
171| -- | -- |
172| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br>IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_INVALID_PARAMETER:从surface获取参数失败。<br> IMAGE_RESULT_CREATE_SURFACE_FAILED:创建surface失败。<br> IMAGE_RESULT_SURFACE_GRALLOC_BUFFER_FAILED:surface分配内存失败。<br> IMAGE_RESULT_GET_SURFACE_FAILED:获取surface失败。<br> IMAGE_RESULT_MEDIA_RTSP_SURFACE_UNSUPPORT:媒体rtsp surface不支持。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。<br> IMAGE_RESULT_MEDIA_DATA_UNSUPPORT:媒体类型不支持。 |
173
174### OH_Image_Receiver_ReadNextImage()
175
176```
177int32_t OH_Image_Receiver_ReadNextImage(const ImageReceiverNative* native, napi_value* image)
178```
179
180**描述**
181
182通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取下一张图片。
183
184注意,此接口需要在[OH_Image_Receiver_On_Callback](#oh_image_receiver_on_callback)回调后调用,才能正常的接收到数据。并且使用此接口返回Image对象创建的[ImageNative](capi-image-imagenative-.md)使用完毕后需要调用[OH_Image_Release](capi-image-mdk-h.md#oh_image_release)方法释放,释放后才可以继续接收新的数据。
185
186**起始版本:** 10
187
188
189**参数:**
190
191| 参数项 | 描述 |
192| -- | -- |
193| const [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
194| napi_value* image | 读取到的应用层的Image指针对象。 |
195
196**返回:**
197
198| 类型 | 说明 |
199| -- | -- |
200| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br>IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_INVALID_PARAMETER:从surface获取参数失败。<br> IMAGE_RESULT_CREATE_SURFACE_FAILED:创建surface失败。<br> IMAGE_RESULT_SURFACE_GRALLOC_BUFFER_FAILED:surface分配内存失败。<br> IMAGE_RESULT_GET_SURFACE_FAILED:获取surface失败。<br> IMAGE_RESULT_MEDIA_RTSP_SURFACE_UNSUPPORT:媒体rtsp surface不支持。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。<br> IMAGE_RESULT_MEDIA_DATA_UNSUPPORT:媒体类型不支持。 |
201
202### OH_Image_Receiver_On()
203
204```
205int32_t OH_Image_Receiver_On(const ImageReceiverNative* native, OH_Image_Receiver_On_Callback callback)
206```
207
208**描述**
209
210注册一个[OH_Image_Receiver_On_Callback](#oh_image_receiver_on_callback)回调事件。每当接收新图片,该回调事件就会响应。
211
212**起始版本:** 10
213
214
215**参数:**
216
217| 参数项 | 描述 |
218| -- | -- |
219| const [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
220| [OH_Image_Receiver_On_Callback](#oh_image_receiver_on_callback) callback | [OH_Image_Receiver_On_Callback](#oh_image_receiver_on_callback)事件的回调函数。 |
221
222**返回:**
223
224| 类型 | 说明 |
225| -- | -- |
226| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br>IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_INVALID_PARAMETER:从surface获取参数失败。<br> IMAGE_RESULT_GET_SURFACE_FAILED:获取surface失败。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。<br> IMAGE_RESULT_MEDIA_DATA_UNSUPPORT:媒体类型不支持。 |
227
228### OH_Image_Receiver_GetSize()
229
230
231```
232int32_t OH_Image_Receiver_GetSize(const ImageReceiverNative* native, struct OhosImageSize* size)
233```
234
235**描述**
236
237通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取ImageReceiver的大小。
238
239**起始版本:** 10
240
241
242**参数:**
243
244| 参数项 | 描述 |
245| -- | -- |
246| const [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
247| struct [OhosImageSize](capi-image-ohosimagesize.md)* size | 作为结果的OhosImageSize指针。 |
248
249**返回:**
250
251| 类型 | 说明 |
252| -- | -- |
253| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br>IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。 |
254
255### OH_Image_Receiver_GetCapacity()
256
257```
258int32_t OH_Image_Receiver_GetCapacity(const ImageReceiverNative* native, int32_t* capacity)
259```
260
261**描述**
262
263通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取ImageReceiver的容量。
264
265**起始版本:** 10
266
267
268**参数:**
269
270| 参数项 | 描述 |
271| -- | -- |
272| const [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
273| int32_t* capacity | 作为结果的指向容量的指针。 |
274
275**返回:**
276
277| 类型 | 说明 |
278| -- | -- |
279| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br>IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。 |
280
281### OH_Image_Receiver_GetFormat()
282
283```
284int32_t OH_Image_Receiver_GetFormat(const ImageReceiverNative* native, int32_t* format)
285```
286
287**描述**
288
289通过[ImageReceiverNative](capi-image-imagereceivernative-.md)获取ImageReceiver的格式。
290
291**起始版本:** 10
292
293
294**参数:**
295
296| 参数项 | 描述 |
297| -- | -- |
298| const [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
299| int32_t* format | 作为结果的指向格式的指针。 |
300
301**返回:**
302
303| 类型 | 说明 |
304| -- | -- |
305| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br>IMAGE_RESULT_JNI_ENV_ABNORMAL:JNI环境异常。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。 |
306
307### OH_Image_Receiver_Release()
308
309```
310int32_t OH_Image_Receiver_Release(ImageReceiverNative* native)
311```
312
313**描述**
314
315释放native层[ImageReceiverNative](capi-image-imagereceivernative-.md)对象。
316
317注意,此方法不能释放应用层ImageReceiver对象。
318
319**起始版本:** 10
320
321
322**参数:**
323
324| 参数项 | 描述 |
325| -- | -- |
326| [ImageReceiverNative](capi-image-imagereceivernative-.md)* native | native层的ImageReceiverNative指针。 |
327
328**返回:**
329
330| 类型 | 说明 |
331| -- | -- |
332| int32_t | [IRNdkErrCode](capi-image-mdk-common-h.md#irndkerrcode):<br>IMAGE_RESULT_SUCCESS:操作成功。<br> IMAGE_RESULT_BAD_PARAMETER:参数错误。<br> IMAGE_RESULT_INVALID_PARAMETER:参数无效。<br> IMAGE_RESULT_DATA_UNSUPPORT:图像类型不支持。 |
333
334
335