• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AVMetadataExtractor
2
3
4## 概述
5
6提供从媒体资源中获取元数据的API。
7
8**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
9
10**起始版本:** 18
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [avmetadata_extractor.h](avmetadata__extractor_8h.md) | 定义AVMetadataExtractor接口。使用其Native API从媒体资源中获取元数据。  |
21| [avmetadata_extractor_base.h](avmetadata__extractor__base_8h.md) | 定义AVMetadataExtractor常量。  |
22
23
24### 类型定义
25
26| 名称 | 描述 |
27| -------- | -------- |
28| typedef struct [OH_AVMetadataExtractor](#oh_avmetadataextractor) [OH_AVMetadataExtractor](#oh_avmetadataextractor) | 定义OH_AVMetadataExtractor类型。  |
29
30
31### 函数
32
33| 名称 | 描述 |
34| -------- | -------- |
35| [OH_AVMetadataExtractor](#oh_avmetadataextractor) \* [OH_AVMetadataExtractor_Create](#oh_avmetadataextractor_create) (void) | 创建OH_AVMetadataExtractor实例。  |
36| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVMetadataExtractor_SetFDSource](#oh_avmetadataextractor_setfdsource) ([OH_AVMetadataExtractor](#oh_avmetadataextractor) \*extractor, int32_t fd, int64_t offset, int64_t size) | 通过媒体文件描述设置数据源。  |
37| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVMetadataExtractor_FetchMetadata](#oh_avmetadataextractor_fetchmetadata) ([OH_AVMetadataExtractor](#oh_avmetadataextractor) \*extractor, OH_AVFormat \*avMetadata) | 从媒体资源中获取元数据。 此函数必须在[SetFDSource](#oh_avmetadataextractor_setfdsource)之后调用。 |
38| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVMetadataExtractor_FetchAlbumCover](#oh_avmetadataextractor_fetchalbumcover) ([OH_AVMetadataExtractor](#oh_avmetadataextractor) \*extractor, OH_PixelmapNative \*\*pixelMap) | 获取音频专辑封面。 此函数必须在[SetFDSource](#oh_avmetadataextractor_setfdsource)之后调用。 |
39| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVMetadataExtractor_Release](#oh_avmetadataextractor_release) ([OH_AVMetadataExtractor](#oh_avmetadataextractor) \*extractor) | 释放用于OH_AVMetadataExtractor的资源并销毁OH_AVMetadataExtractor实例。  |
40
41
42### 变量
43
44| 名称 | 描述 |
45| -------- | -------- |
46| static const char\* [OH_AVMETADATA_EXTRACTOR_ALBUM](#oh_avmetadata_extractor_album) = "album" | 获取专辑标题的关键字,对应值类型为const char\*。  |
47| static const char\* [OH_AVMETADATA_EXTRACTOR_ALBUM_ARTIST](#oh_avmetadata_extractor_album_artist) = "albumArtist" | 获取专辑艺术家的关键字,对应值类型为const char\*。  |
48| static const char\* [OH_AVMETADATA_EXTRACTOR_ARTIST](#oh_avmetadata_extractor_artist) = "artist" | 获取媒体资源艺术家的关键字,对应值类型为const char\*。  |
49| static const char\* [OH_AVMETADATA_EXTRACTOR_AUTHOR](#oh_avmetadata_extractor_author) = "author" | 获取媒体资源作者的关键字,对应值类型为const char\*。  |
50| static const char\* [OH_AVMETADATA_EXTRACTOR_DATE_TIME](#oh_avmetadata_extractor_date_time) = "dateTime" | 获取媒体资源创建时间的关键字,对应值类型为const char\*。  |
51| static const char\* [OH_AVMETADATA_EXTRACTOR_DATE_TIME_FORMAT](#oh_avmetadata_extractor_date_time_format) = "dateTimeFormat" | 获取媒体资源创建时间的关键字,对应值类型为const char\*,按YYYY-MM-DD HH:mm:ss格式输出。  |
52| static const char\* [OH_AVMETADATA_EXTRACTOR_COMPOSER](#oh_avmetadata_extractor_composer) = "composer" | 获取媒体资源作曲家的关键字,对应值类型为const char\*。  |
53| static const char\* [OH_AVMETADATA_EXTRACTOR_DURATION](#oh_avmetadata_extractor_duration) = "duration" | 获取媒体资源时长的关键字,对应值类型为int64_t,单位为毫秒(ms)。  |
54| static const char\* [OH_AVMETADATA_EXTRACTOR_GENRE](#oh_avmetadata_extractor_genre) = "genre" | 获取媒体资源类型或体裁的关键字,对应值类型为const char\*。  |
55| static const char\* [OH_AVMETADATA_EXTRACTOR_HAS_AUDIO](#oh_avmetadata_extractor_has_audio) = "hasAudio" | 获取媒体资源是否包含音频的关键字,对应值类型为int32_t。  |
56| static const char\* [OH_AVMETADATA_EXTRACTOR_HAS_VIDEO](#oh_avmetadata_extractor_has_video) = "hasVideo" | 获取媒体资源是否包含视频的关键字,对应值类型为int32_t。  |
57| static const char\* [OH_AVMETADATA_EXTRACTOR_MIME_TYPE](#oh_avmetadata_extractor_mime_type) = "mimeType" | 获取媒体资源mime类型的关键字,对应值类型为const char\*,例如:“video/mp4”、“audio/mp4”和“audio/amr wb”。  |
58| static const char\* [OH_AVMETADATA_EXTRACTOR_TRACK_COUNT](#oh_avmetadata_extractor_track_count) = "trackCount" | 获取媒体资源轨道数量的关键字,对应值类型为int32_t。  |
59| static const char\* [OH_AVMETADATA_EXTRACTOR_SAMPLE_RATE](#oh_avmetadata_extractor_sample_rate) = "sampleRate" | 获取音频采样率的关键字,对应值类型为int32_t,单位为赫兹(Hz)。  |
60| static const char\* [OH_AVMETADATA_EXTRACTOR_TITLE](#oh_avmetadata_extractor_title) = "title" | 获取媒体资源标题关键字,对应值类型为const char\*。 |
61| static const char\* [OH_AVMETADATA_EXTRACTOR_VIDEO_HEIGHT](#oh_avmetadata_extractor_video_height) = "videoHeight" | 获取视频高度的关键字,对应值类型为int32_t,单位为像素。  |
62| static const char\* [OH_AVMETADATA_EXTRACTOR_VIDEO_WIDTH](#oh_avmetadata_extractor_video_width) = "videoWidth" | 获取视频宽度的关键字,对应值类型为int32_t,单位为像素。  |
63| static const char\* [OH_AVMETADATA_EXTRACTOR_VIDEO_ORIENTATION](#oh_avmetadata_extractor_video_orientation) = "videoOrientation" | 获取视频旋转方向的关键字,对应值类型为int32_t,单位为度(°)。  |
64| static const char\* [OH_AVMETADATA_EXTRACTOR_VIDEO_IS_HDR_VIVID](#oh_avmetadata_extractor_video_is_hdr_vivid) = "hdrType" | 获取是否是HDR Vivid视频的关键字,对应值类型为int32_t。 详情请参阅 [OH_Core_HdrType](../apis-avcodec-kit/_core.md#oh_core_hdrtype) 定义在 [media_types.h](../apis-avcodec-kit/media__types_8h.md) 。  |
65| static const char\* [OH_AVMETADATA_EXTRACTOR_LOCATION_LATITUDE](#oh_avmetadata_extractor_location_latitude) = "latitude" | 获取地理位置中的纬度值的关键字,对应值类型为float。  |
66| static const char\* [OH_AVMETADATA_EXTRACTOR_LOCATION_LONGITUDE](#oh_avmetadata_extractor_location_longitude) = "longitude" | 获取地理位置中的经度值的关键字,对应值类型为float。  |
67
68
69## 类型定义说明
70
71
72### OH_AVMetadataExtractor
73
74```
75typedef struct OH_AVMetadataExtractor OH_AVMetadataExtractor
76```
77**描述**
78定义OH_AVMetadataExtractor类型。
79
80**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
81
82**起始版本:** 18
83
84
85## 函数说明
86
87
88### OH_AVMetadataExtractor_Create()
89
90```
91OH_AVMetadataExtractor* OH_AVMetadataExtractor_Create(void)
92```
93**描述**
94创建OH_AVMetadataExtractor实例。
95
96**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
97
98**起始版本:** 18
99
100**返回:**
101
102创建成功时返回指向OH_AVMetadataExtractor实例的指针,否则返回空指针。
103
104可能的失败原因:HstEngineFactory::CreateAVMetadataHelperEngine执行失败。
105
106
107### OH_AVMetadataExtractor_FetchAlbumCover()
108
109```
110OH_AVErrCode OH_AVMetadataExtractor_FetchAlbumCover(OH_AVMetadataExtractor* extractor, OH_PixelmapNative** pixelMap)
111```
112**描述**
113获取音频专辑封面。 此函数必须在[SetFDSource](#oh_avmetadataextractor_setfdsource)之后调用。
114
115**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
116
117**起始版本:** 18
118
119**参数:**
120
121| 名称 | 描述 |
122| -------- | -------- |
123| extractor | 指向OH_AVMetadataExtractor实例的指针。  |
124| pixelMap | 从音频源获取的专辑封面。有关详细信息,请参阅 **OH_PixelmapNative** 。  |
125
126**返回:**
127
128函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1):
129
130AV_ERR_OK:执行成功。
131
132AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
133
134AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
135
136AV_ERR_UNSUPPORTED_FORMAT:格式不支持。
137
138AV_ERR_NO_MEMORY:内部内存分配失败。
139
140
141### OH_AVMetadataExtractor_FetchMetadata()
142
143```
144OH_AVErrCode OH_AVMetadataExtractor_FetchMetadata(OH_AVMetadataExtractor* extractor, OH_AVFormat* avMetadata)
145```
146**描述**
147从媒体资源中获取元数据。 此函数必须在[SetFDSource](#oh_avmetadataextractor_setfdsource)之后调用。
148
149**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
150
151**起始版本:** 18
152
153**参数:**
154
155| 名称 | 描述 |
156| -------- | -------- |
157| extractor | 指向OH_AVMetadataExtractor实例的指针。  |
158| avMetadata | 指向**OH_AVFormat**实例的指针,其内容包含获取的元数据信息。  |
159
160**返回:**
161
162函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1):
163
164AV_ERR_OK:执行成功。
165
166AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
167
168AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
169
170AV_ERR_UNSUPPORTED_FORMAT:格式不支持。
171
172AV_ERR_NO_MEMORY:内部内存分配失败。
173
174
175### OH_AVMetadataExtractor_Release()
176
177```
178OH_AVErrCode OH_AVMetadataExtractor_Release(OH_AVMetadataExtractor* extractor)
179```
180**描述**
181释放用于OH_AVMetadataExtractor的资源并销毁OH_AVMetadataExtractor实例。
182
183**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
184
185**起始版本:** 18
186
187**参数:**
188
189| 名称 | 描述 |
190| -------- | -------- |
191| extractor | 指向OH_AVMetadataExtractor实例指针。  |
192
193**返回:**
194
195函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1):
196
197AV_ERR_OK:执行成功。
198
199AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
200
201
202### OH_AVMetadataExtractor_SetFDSource()
203
204```
205OH_AVErrCode OH_AVMetadataExtractor_SetFDSource(OH_AVMetadataExtractor* extractor, int32_t fd, int64_t offset, int64_t size)
206```
207**描述**
208通过媒体文件描述设置数据源。
209
210**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
211
212**起始版本:** 18
213
214**参数:**
215
216| 名称 | 描述 |
217| -------- | -------- |
218| extractor | 指向OH_AVMetadataExtractor实例的指针。  |
219| fd | 媒体源的文件描述符。  |
220| offset | 媒体源在文件描述符中的偏移量。  |
221| size | 媒体源的大小。  |
222
223**返回:**
224
225函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1):
226
227AV_ERR_OK:执行成功。
228
229AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
230
231AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
232
233AV_ERR_NO_MEMORY:内部内存分配失败。
234
235
236## 变量说明
237
238
239### OH_AVMETADATA_EXTRACTOR_ALBUM
240
241```
242static const char* OH_AVMETADATA_EXTRACTOR_ALBUM = "album"
243```
244**描述**
245获取专辑标题的关键字,对应值类型为const char\*。
246
247**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
248
249**起始版本:** 18
250
251
252### OH_AVMETADATA_EXTRACTOR_ALBUM_ARTIST
253
254```
255static const char* OH_AVMETADATA_EXTRACTOR_ALBUM_ARTIST = "albumArtist"
256```
257**描述**
258获取专辑艺术家的关键字,对应值类型为const char\*。
259
260**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
261
262**起始版本:** 18
263
264
265### OH_AVMETADATA_EXTRACTOR_ARTIST
266
267```
268static const char* OH_AVMETADATA_EXTRACTOR_ARTIST = "artist"
269```
270**描述**
271获取媒体资源艺术家的关键字,对应值类型为const char\*。
272
273**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
274
275**起始版本:** 18
276
277
278### OH_AVMETADATA_EXTRACTOR_AUTHOR
279
280```
281static const char* OH_AVMETADATA_EXTRACTOR_AUTHOR = "author"
282```
283**描述**
284获取媒体资源作者的关键字,对应值类型为const char\*。
285
286**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
287
288**起始版本:** 18
289
290
291### OH_AVMETADATA_EXTRACTOR_COMPOSER
292
293```
294static const char* OH_AVMETADATA_EXTRACTOR_COMPOSER = "composer"
295```
296**描述**
297获取媒体资源作曲家的关键字,对应值类型为const char\*。
298
299**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
300
301**起始版本:** 18
302
303
304### OH_AVMETADATA_EXTRACTOR_DATE_TIME
305
306```
307static const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME = "dateTime"
308```
309**描述**
310获取媒体资源创建时间的关键字,对应值类型为const char\*。
311
312**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
313
314**起始版本:** 18
315
316
317### OH_AVMETADATA_EXTRACTOR_DATE_TIME_FORMAT
318
319```
320static const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME_FORMAT = "dateTimeFormat"
321```
322**描述**
323获取媒体资源创建时间的关键字,对应值类型为const char\*,按YYYY-MM-DD HH:mm:ss格式输出。
324
325**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
326
327**起始版本:** 18
328
329
330### OH_AVMETADATA_EXTRACTOR_DURATION
331
332```
333static const char* OH_AVMETADATA_EXTRACTOR_DURATION = "duration"
334```
335**描述**
336获取媒体资源时长的关键字,对应值类型为int64_t,单位为毫秒(ms)。
337
338**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
339
340**起始版本:** 18
341
342
343### OH_AVMETADATA_EXTRACTOR_GENRE
344
345```
346static const char* OH_AVMETADATA_EXTRACTOR_GENRE = "genre"
347```
348**描述**
349获取媒体资源类型或体裁的关键字,对应值类型为const char\*。
350
351**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
352
353**起始版本:** 18
354
355
356### OH_AVMETADATA_EXTRACTOR_HAS_AUDIO
357
358```
359static const char* OH_AVMETADATA_EXTRACTOR_HAS_AUDIO = "hasAudio"
360```
361**描述**
362获取媒体资源是否包含音频的关键字,对应值类型为int32_t。
363
364**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
365
366**起始版本:** 18
367
368
369### OH_AVMETADATA_EXTRACTOR_HAS_VIDEO
370
371```
372static const char* OH_AVMETADATA_EXTRACTOR_HAS_VIDEO = "hasVideo"
373```
374**描述**
375获取媒体资源是否包含视频的关键字,对应值类型为int32_t。
376
377**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
378
379**起始版本:** 18
380
381
382### OH_AVMETADATA_EXTRACTOR_LOCATION_LATITUDE
383
384```
385static const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LATITUDE = "latitude"
386```
387**描述**
388获取地理位置中的纬度值的关键字,对应值类型为float。
389
390**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
391
392**起始版本:** 18
393
394
395### OH_AVMETADATA_EXTRACTOR_LOCATION_LONGITUDE
396
397```
398static const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LONGITUDE = "longitude"
399```
400**描述**
401获取地理位置中的经度值的关键字,对应值类型为float。
402
403**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
404
405**起始版本:** 18
406
407
408### OH_AVMETADATA_EXTRACTOR_MIME_TYPE
409
410```
411static const char* OH_AVMETADATA_EXTRACTOR_MIME_TYPE = "mimeType"
412```
413**描述**
414获取媒体资源mime类型的关键字,对应值类型为const char\*,例如:“video/mp4”、“audio/mp4”和“audio/amr wb”。
415
416**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
417
418**起始版本:** 18
419
420
421### OH_AVMETADATA_EXTRACTOR_SAMPLE_RATE
422
423```
424static const char* OH_AVMETADATA_EXTRACTOR_SAMPLE_RATE = "sampleRate"
425```
426**描述**
427获取音频采样率的关键字,对应值类型为int32_t,单位为赫兹(Hz)。
428
429**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
430
431**起始版本:** 18
432
433
434### OH_AVMETADATA_EXTRACTOR_TITLE
435
436```
437static const char* OH_AVMETADATA_EXTRACTOR_TITLE = "title"
438```
439**描述**
440获取媒体资源标题的关键字,对应值类型为const char\*。
441
442**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
443
444**起始版本:** 18
445
446
447### OH_AVMETADATA_EXTRACTOR_TRACK_COUNT
448
449```
450static const char* OH_AVMETADATA_EXTRACTOR_TRACK_COUNT = "trackCount"
451```
452**描述**
453获取媒体资源轨道数量的关键字,对应值类型为int32_t。
454
455**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
456
457**起始版本:** 18
458
459
460### OH_AVMETADATA_EXTRACTOR_VIDEO_HEIGHT
461
462```
463static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_HEIGHT = "videoHeight"
464```
465**描述**
466获取视频高度的关键字,对应值类型为int32_t,单位为像素。
467
468**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
469
470**起始版本:** 18
471
472
473### OH_AVMETADATA_EXTRACTOR_VIDEO_IS_HDR_VIVID
474
475```
476static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_IS_HDR_VIVID = "hdrType"
477```
478**描述**
479获取是否是HDR Vivid视频的关键字,对应值类型为int32_t。 详情请参阅 [OH_Core_HdrType](../apis-avcodec-kit/_core.md#oh_core_hdrtype),位于 [media_types.h](../apis-avcodec-kit/media__types_8h.md) 文件中。
480
481**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
482
483**起始版本:** 18
484
485
486### OH_AVMETADATA_EXTRACTOR_VIDEO_ORIENTATION
487
488```
489static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_ORIENTATION = "videoOrientation"
490```
491**描述**
492获取视频旋转方向的关键字,对应值类型为int32_t,单位为度(°)。
493
494**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
495
496**起始版本:** 18
497
498
499### OH_AVMETADATA_EXTRACTOR_VIDEO_WIDTH
500
501```
502static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_WIDTH = "videoWidth"
503```
504**描述**
505获取视频宽度的关键字,对应值类型为int32_t,单位为像素。
506
507**系统能力:** SystemCapability.Multimedia.Media.AVMetadataExtractor
508
509**起始版本:** 18
510