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