AVMetadataExtractor
概述
提供从媒体资源中获取元数据的API。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
汇总
文件
| 名称 | 描述 |
|---|---|
| avmetadata_extractor.h | 定义AVMetadataExtractor接口。使用其Native API从媒体资源中获取元数据。 |
| avmetadata_extractor_base.h | 定义AVMetadataExtractor常量。 |
类型定义
| 名称 | 描述 |
|---|---|
| typedef struct OH_AVMetadataExtractor OH_AVMetadataExtractor | 定义OH_AVMetadataExtractor类型。 |
函数
| 名称 | 描述 |
|---|---|
| OH_AVMetadataExtractor * OH_AVMetadataExtractor_Create (void) | 创建OH_AVMetadataExtractor实例。 |
| OH_AVErrCode OH_AVMetadataExtractor_SetFDSource (OH_AVMetadataExtractor *extractor, int32_t fd, int64_t offset, int64_t size) | 通过媒体文件描述设置数据源。 |
| OH_AVErrCode OH_AVMetadataExtractor_FetchMetadata (OH_AVMetadataExtractor *extractor, OH_AVFormat *avMetadata) | 从媒体资源中获取元数据。 此函数必须在SetFDSource之后调用。 |
| OH_AVErrCode OH_AVMetadataExtractor_FetchAlbumCover (OH_AVMetadataExtractor *extractor, OH_PixelmapNative **pixelMap) | 获取音频专辑封面。 此函数必须在SetFDSource之后调用。 |
| OH_AVErrCode OH_AVMetadataExtractor_Release (OH_AVMetadataExtractor *extractor) | 释放用于OH_AVMetadataExtractor的资源并销毁OH_AVMetadataExtractor实例。 |
变量
| 名称 | 描述 |
|---|---|
| static const char* OH_AVMETADATA_EXTRACTOR_ALBUM = "album" | 获取专辑标题的关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_ALBUM_ARTIST = "albumArtist" | 获取专辑艺术家的关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_ARTIST = "artist" | 获取媒体资源艺术家的关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_AUTHOR = "author" | 获取媒体资源作者的关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME = "dateTime" | 获取媒体资源创建时间的关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME_FORMAT = "dateTimeFormat" | 获取媒体资源创建时间的关键字,对应值类型为const char*,按YYYY-MM-DD HH:mm:ss格式输出。 |
| static const char* OH_AVMETADATA_EXTRACTOR_COMPOSER = "composer" | 获取媒体资源作曲家的关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_DURATION = "duration" | 获取媒体资源时长的关键字,对应值类型为int64_t,单位为毫秒(ms)。 |
| static const char* OH_AVMETADATA_EXTRACTOR_GENRE = "genre" | 获取媒体资源类型或体裁的关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_HAS_AUDIO = "hasAudio" | 获取媒体资源是否包含音频的关键字,对应值类型为int32_t。 |
| static const char* OH_AVMETADATA_EXTRACTOR_HAS_VIDEO = "hasVideo" | 获取媒体资源是否包含视频的关键字,对应值类型为int32_t。 |
| static const char* OH_AVMETADATA_EXTRACTOR_MIME_TYPE = "mimeType" | 获取媒体资源mime类型的关键字,对应值类型为const char*,例如:“video/mp4”、“audio/mp4”和“audio/amr wb”。 |
| static const char* OH_AVMETADATA_EXTRACTOR_TRACK_COUNT = "trackCount" | 获取媒体资源轨道数量的关键字,对应值类型为int32_t。 |
| static const char* OH_AVMETADATA_EXTRACTOR_SAMPLE_RATE = "sampleRate" | 获取音频采样率的关键字,对应值类型为int32_t,单位为赫兹(Hz)。 |
| static const char* OH_AVMETADATA_EXTRACTOR_TITLE = "title" | 获取媒体资源标题关键字,对应值类型为const char*。 |
| static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_HEIGHT = "videoHeight" | 获取视频高度的关键字,对应值类型为int32_t,单位为像素。 |
| static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_WIDTH = "videoWidth" | 获取视频宽度的关键字,对应值类型为int32_t,单位为像素。 |
| static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_ORIENTATION = "videoOrientation" | 获取视频旋转方向的关键字,对应值类型为int32_t,单位为度(°)。 |
| static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_IS_HDR_VIVID = "hdrType" | 获取是否是HDR Vivid视频的关键字,对应值类型为int32_t。 详情请参阅 OH_Core_HdrType 定义在 media_types.h 。 |
| static const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LATITUDE = "latitude" | 获取地理位置中的纬度值的关键字,对应值类型为float。 |
| static const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LONGITUDE = "longitude" | 获取地理位置中的经度值的关键字,对应值类型为float。 |
类型定义说明
OH_AVMetadataExtractor
typedef struct OH_AVMetadataExtractor OH_AVMetadataExtractor
描述 定义OH_AVMetadataExtractor类型。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
函数说明
OH_AVMetadataExtractor_Create()
OH_AVMetadataExtractor* OH_AVMetadataExtractor_Create(void)
描述 创建OH_AVMetadataExtractor实例。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
返回:
创建成功时返回指向OH_AVMetadataExtractor实例的指针,否则返回空指针。
可能的失败原因:HstEngineFactory::CreateAVMetadataHelperEngine执行失败。
OH_AVMetadataExtractor_FetchAlbumCover()
OH_AVErrCode OH_AVMetadataExtractor_FetchAlbumCover(OH_AVMetadataExtractor* extractor, OH_PixelmapNative** pixelMap)
描述 获取音频专辑封面。 此函数必须在SetFDSource之后调用。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
参数:
| 名称 | 描述 |
|---|---|
| extractor | 指向OH_AVMetadataExtractor实例的指针。 |
| pixelMap | 从音频源获取的专辑封面。有关详细信息,请参阅 OH_PixelmapNative 。 |
返回:
函数结果代码OH_AVErrCode:
AV_ERR_OK:执行成功。
AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
AV_ERR_UNSUPPORTED_FORMAT:格式不支持。
AV_ERR_NO_MEMORY:内部内存分配失败。
OH_AVMetadataExtractor_FetchMetadata()
OH_AVErrCode OH_AVMetadataExtractor_FetchMetadata(OH_AVMetadataExtractor* extractor, OH_AVFormat* avMetadata)
描述 从媒体资源中获取元数据。 此函数必须在SetFDSource之后调用。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
参数:
| 名称 | 描述 |
|---|---|
| extractor | 指向OH_AVMetadataExtractor实例的指针。 |
| avMetadata | 指向OH_AVFormat实例的指针,其内容包含获取的元数据信息。 |
返回:
函数结果代码OH_AVErrCode:
AV_ERR_OK:执行成功。
AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
AV_ERR_UNSUPPORTED_FORMAT:格式不支持。
AV_ERR_NO_MEMORY:内部内存分配失败。
OH_AVMetadataExtractor_Release()
OH_AVErrCode OH_AVMetadataExtractor_Release(OH_AVMetadataExtractor* extractor)
描述 释放用于OH_AVMetadataExtractor的资源并销毁OH_AVMetadataExtractor实例。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
参数:
| 名称 | 描述 |
|---|---|
| extractor | 指向OH_AVMetadataExtractor实例指针。 |
返回:
函数结果代码OH_AVErrCode:
AV_ERR_OK:执行成功。
AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
OH_AVMetadataExtractor_SetFDSource()
OH_AVErrCode OH_AVMetadataExtractor_SetFDSource(OH_AVMetadataExtractor* extractor, int32_t fd, int64_t offset, int64_t size)
描述 通过媒体文件描述设置数据源。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
参数:
| 名称 | 描述 |
|---|---|
| extractor | 指向OH_AVMetadataExtractor实例的指针。 |
| fd | 媒体源的文件描述符。 |
| offset | 媒体源在文件描述符中的偏移量。 |
| size | 媒体源的大小。 |
返回:
函数结果代码OH_AVErrCode:
AV_ERR_OK:执行成功。
AV_ERR_INVALID_VAL:输入的extractor为空指针或参数无效。
AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
AV_ERR_NO_MEMORY:内部内存分配失败。
变量说明
OH_AVMETADATA_EXTRACTOR_ALBUM
static const char* OH_AVMETADATA_EXTRACTOR_ALBUM = "album"
描述 获取专辑标题的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_ALBUM_ARTIST
static const char* OH_AVMETADATA_EXTRACTOR_ALBUM_ARTIST = "albumArtist"
描述 获取专辑艺术家的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_ARTIST
static const char* OH_AVMETADATA_EXTRACTOR_ARTIST = "artist"
描述 获取媒体资源艺术家的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_AUTHOR
static const char* OH_AVMETADATA_EXTRACTOR_AUTHOR = "author"
描述 获取媒体资源作者的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_COMPOSER
static const char* OH_AVMETADATA_EXTRACTOR_COMPOSER = "composer"
描述 获取媒体资源作曲家的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_DATE_TIME
static const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME = "dateTime"
描述 获取媒体资源创建时间的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_DATE_TIME_FORMAT
static const char* OH_AVMETADATA_EXTRACTOR_DATE_TIME_FORMAT = "dateTimeFormat"
描述 获取媒体资源创建时间的关键字,对应值类型为const char*,按YYYY-MM-DD HH:mm:ss格式输出。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_DURATION
static const char* OH_AVMETADATA_EXTRACTOR_DURATION = "duration"
描述 获取媒体资源时长的关键字,对应值类型为int64_t,单位为毫秒(ms)。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_GENRE
static const char* OH_AVMETADATA_EXTRACTOR_GENRE = "genre"
描述 获取媒体资源类型或体裁的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_HAS_AUDIO
static const char* OH_AVMETADATA_EXTRACTOR_HAS_AUDIO = "hasAudio"
描述 获取媒体资源是否包含音频的关键字,对应值类型为int32_t。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_HAS_VIDEO
static const char* OH_AVMETADATA_EXTRACTOR_HAS_VIDEO = "hasVideo"
描述 获取媒体资源是否包含视频的关键字,对应值类型为int32_t。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_LOCATION_LATITUDE
static const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LATITUDE = "latitude"
描述 获取地理位置中的纬度值的关键字,对应值类型为float。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_LOCATION_LONGITUDE
static const char* OH_AVMETADATA_EXTRACTOR_LOCATION_LONGITUDE = "longitude"
描述 获取地理位置中的经度值的关键字,对应值类型为float。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_MIME_TYPE
static const char* OH_AVMETADATA_EXTRACTOR_MIME_TYPE = "mimeType"
描述 获取媒体资源mime类型的关键字,对应值类型为const char*,例如:“video/mp4”、“audio/mp4”和“audio/amr wb”。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_SAMPLE_RATE
static const char* OH_AVMETADATA_EXTRACTOR_SAMPLE_RATE = "sampleRate"
描述 获取音频采样率的关键字,对应值类型为int32_t,单位为赫兹(Hz)。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_TITLE
static const char* OH_AVMETADATA_EXTRACTOR_TITLE = "title"
描述 获取媒体资源标题的关键字,对应值类型为const char*。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_TRACK_COUNT
static const char* OH_AVMETADATA_EXTRACTOR_TRACK_COUNT = "trackCount"
描述 获取媒体资源轨道数量的关键字,对应值类型为int32_t。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_VIDEO_HEIGHT
static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_HEIGHT = "videoHeight"
描述 获取视频高度的关键字,对应值类型为int32_t,单位为像素。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_VIDEO_IS_HDR_VIVID
static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_IS_HDR_VIVID = "hdrType"
描述 获取是否是HDR Vivid视频的关键字,对应值类型为int32_t。 详情请参阅 OH_Core_HdrType,位于 media_types.h 文件中。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_VIDEO_ORIENTATION
static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_ORIENTATION = "videoOrientation"
描述 获取视频旋转方向的关键字,对应值类型为int32_t,单位为度(°)。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18
OH_AVMETADATA_EXTRACTOR_VIDEO_WIDTH
static const char* OH_AVMETADATA_EXTRACTOR_VIDEO_WIDTH = "videoWidth"
描述 获取视频宽度的关键字,对应值类型为int32_t,单位为像素。
系统能力: SystemCapability.Multimedia.Media.AVMetadataExtractor
起始版本: 18