# MediaAssetManager ## 概述 提供媒体库资源请求能力的API。 对应的开发指南及样例可参考[使用MediaAssetManager请求图片资源](../../media/medialibrary/using-ndk-mediaassetmanager-for-request-resource.md)。 **起始版本:** 12 ## 汇总 ### 文件 | 名称 | 描述 | | -------- | -------- | | [media_access_helper_capi.h](media__access__helper__capi_8h.md) | 定义与相册管理模块相关的API。 | | [media_asset_base_capi.h](media__asset__base__capi_8h.md) | 定义了媒体资产管理器的结构和枚举。 | | [media_asset_capi.h](media__asset__capi_8h.md) | 定义与媒体资源相关的API。 | | [media_asset_change_request_capi.h](media__asset__change__request__capi_8h.md) | 定义与媒体资产更改请求相关的API。 | | [media_asset_manager_capi.h](media__asset__manager__capi_8h.md) | 定义媒体资产管理器的接口。 | | [moving_photo_capi.h](moving__photo__capi_8h.md) | 定义与动态照片相关的API。 | ### 结构体 | 名称 | 描述 | | -------- | -------- | | struct [MediaLibrary_RequestId](_media_library___request_id.md) | 定义请求Id。 | | struct [MediaLibrary_RequestOptions](_media_library___request_options.md) | 请求策略模式配置项。 | ### 类型定义 | 名称 | 描述 | | -------- | -------- | | typedef struct [OH_MediaAssetManager](#oh_mediaassetmanager) [OH_MediaAssetManager](#oh_mediaassetmanager) | 定义媒体资产管理器。 | | typedef struct [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) | 定义媒体资产更改请求。 | | typedef struct [OH_MovingPhoto](#oh_movingphoto) [OH_MovingPhoto](#oh_movingphoto) | 定义动态照片。 | | typedef struct [OH_MediaAsset](#oh_mediaasset) [OH_MediaAsset](#oh_mediaasset) | 定义媒体资产。 | | typedef struct [MediaLibrary_RequestId](_media_library___request_id.md) [MediaLibrary_RequestId](#medialibrary_requestid) | 定义请求Id。 | | typedef enum [MediaLibrary_ErrorCode](#medialibrary_errorcode-1) [MediaLibrary_ErrorCode](#medialibrary_errorcode) | 媒体库错误代码的枚举。 | | typedef enum [MediaLibrary_DeliveryMode](#medialibrary_deliverymode-1) [MediaLibrary_DeliveryMode](#medialibrary_deliverymode) | 请求资源分发模式。 | | typedef struct [MediaLibrary_RequestOptions](_media_library___request_options.md) [MediaLibrary_RequestOptions](#medialibrary_requestoptions) | 请求策略模式配置项。 | | typedef enum [MediaLibrary_MediaType](#medialibrary_mediatype-1) [MediaLibrary_MediaType](#medialibrary_mediatype) | 媒体类型的枚举。 | | typedef enum [MediaLibrary_MediaSubType](#medialibrary_mediasubtype-1) [MediaLibrary_MediaSubType](#medialibrary_mediasubtype) | 媒体资源子类型的枚举。 | | typedef enum [MediaLibrary_ResourceType](#medialibrary_resourcetype-1) [MediaLibrary_ResourceType](#medialibrary_resourcetype) | 资源类型的枚举。 | | typedef enum [MediaLibrary_ImageFileType](#medialibrary_imagefiletype-1) [MediaLibrary_ImageFileType](#medialibrary_imagefiletype) | 图像文件类型的枚举。 | | typedef enum [MediaLibrary_MediaQuality](#medialibrary_mediaquality-1) [MediaLibrary_MediaQuality](#medialibrary_mediaquality) | 媒体资源质量枚举。 | | typedef enum [MediaLibrary_MediaContentType](#medialibrary_mediacontenttype-1) [MediaLibrary_MediaContentType](#medialibrary_mediacontenttype) | 媒体内容类型的枚举。 | | typedef void(\* [OH_MediaLibrary_OnDataPrepared](#oh_medialibrary_ondataprepared)) (int32_t result, [MediaLibrary_RequestId](_media_library___request_id.md) requestId) | 当所请求的媒体资源准备完成时会触发回调。 | | typedef void(\* [OH_MediaLibrary_OnImageDataPrepared](#oh_medialibrary_onimagedataprepared)) ([MediaLibrary_ErrorCode](#medialibrary_errorcode) result, [MediaLibrary_RequestId](_media_library___request_id.md) requestId, [MediaLibrary_MediaQuality](#medialibrary_mediaquality) mediaQuality, [MediaLibrary_MediaContentType](#medialibrary_mediacontenttype) type, OH_ImageSourceNative \*imageSourceNative) | 当请求的图像源准备就绪时调用。 | | typedef void(\* [OH_MediaLibrary_OnMovingPhotoDataPrepared](#oh_medialibrary_onmovingphotodataprepared)) ([MediaLibrary_ErrorCode](#medialibrary_errorcode) result, [MediaLibrary_RequestId](_media_library___request_id.md) requestId, [MediaLibrary_MediaQuality](#medialibrary_mediaquality) mediaQuality, [MediaLibrary_MediaContentType](#medialibrary_mediacontenttype) type, [OH_MovingPhoto](#oh_movingphoto) \*movingPhoto) | 当请求的动态照片准备就绪时调用。 | ### 枚举 | 名称 | 描述 | | -------- | -------- | | [MediaLibrary_ErrorCode](#medialibrary_errorcode-1) {
MEDIA_LIBRARY_OK = 0,
MEDIA_LIBRARY_PERMISSION_DENIED = 201,
MEDIA_LIBRARY_PARAMETER_ERROR = 401,
MEDIA_LIBRARY_NO_SUCH_FILE = 23800101,
MEDIA_LIBRARY_INVALID_DISPLAY_NAME = 23800102,
MEDIA_LIBRARY_INVALID_ASSET_URI = 23800103,
MEDIA_LIBRARY_INVALID_PHOTO_KEY = 23800104,
MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED = 23800201,
MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR = 23800301
} | 媒体库错误代码的枚举。 | | [MediaLibrary_DeliveryMode](#medialibrary_deliverymode-1) {
MEDIA_LIBRARY_FAST_MODE = 0,
MEDIA_LIBRARY_HIGH_QUALITY_MODE = 1,
MEDIA_LIBRARY_BALANCED_MODE = 2 } | 请求资源分发模式。 | | [MediaLibrary_MediaType](#medialibrary_mediatype-1) {
MEDIA_LIBRARY_IMAGE = 1,
MEDIA_LIBRARY_VIDEO = 2 } | 媒体类型的枚举。 | | [MediaLibrary_MediaSubType](#medialibrary_mediasubtype-1) {
MEDIA_LIBRARY_DEFAULT = 0,
MEDIA_LIBRARY_MOVING_PHOTO = 3,
MEDIA_LIBRARY_BURST = 4 } | 媒体资源子类型的枚举。 | | [MediaLibrary_ResourceType](#medialibrary_resourcetype-1) {
MEDIA_LIBRARY_IMAGE_RESOURCE = 1,
MEDIA_LIBRARY_VIDEO_RESOURCE = 2 } | 资源类型的枚举。 | | [MediaLibrary_ImageFileType](#medialibrary_imagefiletype-1) {
MEDIA_LIBRARY_IMAGE_JPEG = 1 } | 图像文件类型的枚举。 | | [MediaLibrary_MediaQuality](#medialibrary_mediaquality-1) {
MEDIA_LIBRARY_QUALITY_FAST = 1,
MEDIA_LIBRARY_QUALITY_FULL = 2 } | 媒体资源质量枚举。 | | [MediaLibrary_MediaContentType](#medialibrary_mediacontenttype-1) {
MEDIA_LIBRARY_COMPRESSED = 1,
MEDIA_LIBRARY_PICTURE_OBJECT = 2 } | 媒体内容类型的枚举。 | ### 函数 | 名称 | 描述 | | -------- | -------- | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAccessHelper_ApplyChanges](#oh_mediaaccesshelper_applychanges) ([OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \*changeRequest) | 发起应用资产或相册的更改请求。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetUri](#oh_mediaasset_geturi) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, const char \*\*uri) | 获取媒体资产的uri。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetMediaType](#oh_mediaasset_getmediatype) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, [MediaLibrary_MediaType](#medialibrary_mediatype) \*mediaType) | 获取媒体资源类型。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetMediaSubType](#oh_mediaasset_getmediasubtype) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, [MediaLibrary_MediaSubType](#medialibrary_mediasubtype) \*mediaSubType) | 获取媒体资源子类型。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetDisplayName](#oh_mediaasset_getdisplayname) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, const char \*\*displayName) | 获取媒体资源的显示名称。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetSize](#oh_mediaasset_getsize) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*size) | 获取媒体资产的文件大小。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetDateAdded](#oh_mediaasset_getdateadded) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*dateAdded) | 获取资产添加日期。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetDateModified](#oh_mediaasset_getdatemodified) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*dateModified) | 获取资产的修改日期。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetDateTaken](#oh_mediaasset_getdatetaken) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*dateTaken) | 获取资产的拍摄日期。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetDateAddedMs](#oh_mediaasset_getdateaddedms) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*dateAddedMs) | 获取资产的添加时间(毫秒)。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetDateModifiedMs](#oh_mediaasset_getdatemodifiedms) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*dateModifiedMs) | 获取资产的修改时间(毫秒)。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetDuration](#oh_mediaasset_getduration) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*duration) | 获取媒体资源的持续时间(毫秒)。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetWidth](#oh_mediaasset_getwidth) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*width) | 获取媒体资源的图像宽度(像素)。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetHeight](#oh_mediaasset_getheight) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*height) | 获取媒体资源的图像高度(像素)。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetOrientation](#oh_mediaasset_getorientation) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*orientation) | 获取图像的旋转角度,单位为度。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_IsFavorite](#oh_mediaasset_isfavorite) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, uint32_t \*favorite) | 获取资产的收藏状态。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_GetTitle](#oh_mediaasset_gettitle) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset, const char \*\*title) | 获取媒体资产的标题。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAsset_Release](#oh_mediaasset_release) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset) | 释放媒体资产 | | [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \* [OH_MediaAssetChangeRequest_Create](#oh_mediaassetchangerequest_create) ([OH_MediaAsset](#oh_mediaasset) \*mediaAsset) | 创建[OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetChangeRequest_AddResourceWithUri](#oh_mediaassetchangerequest_addresourcewithuri) ([OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \*changeRequest, [MediaLibrary_ResourceType](#medialibrary_resourcetype) resourceType, char \*fileUri) | 通过文件uri添加资源。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetChangeRequest_AddResourceWithBuffer](#oh_mediaassetchangerequest_addresourcewithbuffer) ([OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \*changeRequest, [MediaLibrary_ResourceType](#medialibrary_resourcetype) resourceType, uint8_t \*buffer, uint32_t length) | 通过ArrayBuffer数据添加资源。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetChangeRequest_GetWriteCacheHandler](#oh_mediaassetchangerequest_getwritecachehandler) ([OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \*changeRequest, int32_t \*fd) | 获取临时文件写句柄。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetChangeRequest_SaveCameraPhoto](#oh_mediaassetchangerequest_savecameraphoto) ([OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \*changeRequest, [MediaLibrary_ImageFileType](#medialibrary_imagefiletype) imageFileType) | 保存相机拍摄的照片资源。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetChangeRequest_DiscardCameraPhoto](#oh_mediaassetchangerequest_discardcameraphoto) ([OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \*changeRequest) | 丢弃相机拍摄的照片资源。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetChangeRequest_Release](#oh_mediaassetchangerequest_release) ([OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest) \*changeRequest) | 释放[OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | | [OH_MediaAssetManager](#oh_mediaassetmanager) \* [OH_MediaAssetManager_Create](#oh_mediaassetmanager_create) (void) | 创建一个媒体资产管理器。 | | [MediaLibrary_RequestId](_media_library___request_id.md) [OH_MediaAssetManager_RequestImageForPath](#oh_mediaassetmanager_requestimageforpath) ([OH_MediaAssetManager](#oh_mediaassetmanager) \*manager, const char \*uri, [MediaLibrary_RequestOptions](_media_library___request_options.md) requestOptions, const char \*destPath, [OH_MediaLibrary_OnDataPrepared](#oh_medialibrary_ondataprepared) callback) | 请求具有目标路径的图像资源。 | | [MediaLibrary_RequestId](_media_library___request_id.md) [OH_MediaAssetManager_RequestVideoForPath](#oh_mediaassetmanager_requestvideoforpath) ([OH_MediaAssetManager](#oh_mediaassetmanager) \*manager, const char \*uri, [MediaLibrary_RequestOptions](_media_library___request_options.md) requestOptions, const char \*destPath, [OH_MediaLibrary_OnDataPrepared](#oh_medialibrary_ondataprepared) callback) | 请求具有目标路径的视频资源。 | | bool [OH_MediaAssetManager_CancelRequest](#oh_mediaassetmanager_cancelrequest) ([OH_MediaAssetManager](#oh_mediaassetmanager) \*manager, const [MediaLibrary_RequestId](_media_library___request_id.md) requestId) | 通过请求Id取消请求。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetManager_RequestMovingPhoto](#oh_mediaassetmanager_requestmovingphoto) ([OH_MediaAssetManager](#oh_mediaassetmanager) \*manager, [OH_MediaAsset](#oh_mediaasset) \*mediaAsset, [MediaLibrary_RequestOptions](_media_library___request_options.md) requestOptions, [MediaLibrary_RequestId](_media_library___request_id.md) \*requestId, [OH_MediaLibrary_OnMovingPhotoDataPrepared](#oh_medialibrary_onmovingphotodataprepared) callback) | 根据不同的策略模式请求动态照片资源。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetManager_RequestImage](#oh_mediaassetmanager_requestimage) ([OH_MediaAssetManager](#oh_mediaassetmanager) \*manager, [OH_MediaAsset](#oh_mediaasset) \*mediaAsset, [MediaLibrary_RequestOptions](_media_library___request_options.md) requestOptions, [MediaLibrary_RequestId](_media_library___request_id.md) \*requestId, [OH_MediaLibrary_OnImageDataPrepared](#oh_medialibrary_onimagedataprepared) callback) | 根据不同的策略模式请求图像资源。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MediaAssetManager_Release](#oh_mediaassetmanager_release) ([OH_MediaAssetManager](#oh_mediaassetmanager) \*manager) | 释放[OH_MediaAssetManager](#oh_mediaassetmanager)实例。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MovingPhoto_GetUri](#oh_movingphoto_geturi) ([OH_MovingPhoto](#oh_movingphoto) \*movingPhoto, const char \*\*uri) | 获取动态照片的uri。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MovingPhoto_RequestContentWithUris](#oh_movingphoto_requestcontentwithuris) ([OH_MovingPhoto](#oh_movingphoto) \*movingPhoto, char \*imageUri, char \*videoUri) | 同时请求动态照片的图片内容和视频内容,并写入参数指定的对应的uri中。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MovingPhoto_RequestContentWithUri](#oh_movingphoto_requestcontentwithuri) ([OH_MovingPhoto](#oh_movingphoto) \*movingPhoto, [MediaLibrary_ResourceType](#medialibrary_resourcetype) resourceType, char \*uri) | 请求指定资源类型的动态照片内容,并写入参数指定的uri中。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MovingPhoto_RequestContentWithBuffer](#oh_movingphoto_requestcontentwithbuffer) ([OH_MovingPhoto](#oh_movingphoto) \*movingPhoto, [MediaLibrary_ResourceType](#medialibrary_resourcetype) resourceType, const uint8_t \*\*buffer, uint32_t \*size) | 请求指定资源类型的动态照片内容,以ArrayBuffer的形式返回。 | | [MediaLibrary_ErrorCode](#medialibrary_errorcode) [OH_MovingPhoto_Release](#oh_movingphoto_release) ([OH_MovingPhoto](#oh_movingphoto) \*movingPhoto) | Release [OH_MovingPhoto](#oh_movingphoto)实例。 | ## 类型定义说明 ### MediaLibrary_DeliveryMode ``` typedef enum MediaLibrary_DeliveryMode MediaLibrary_DeliveryMode ``` **描述** 请求资源分发模式。 此枚举定义了请求资源的分发模式。 - 快速分发:不考虑资源质量,直接基于现有资源返回。 - 高质量分发:返回高质量资源,若没有,则触发生成高质量资源,成功后才返回。 - 均衡分发:若存在高质量资源,则直接返回高质量资源。 否则,先返回低质量资源,并触发生成高质量资源,成功后再返回一次高质量资源。 **起始版本:** 12 ### MediaLibrary_ErrorCode ``` typedef enum MediaLibrary_ErrorCode MediaLibrary_ErrorCode ``` **描述** 媒体库错误代码的枚举。 **起始版本:** 12 ### MediaLibrary_ImageFileType ``` typedef enum MediaLibrary_ImageFileType MediaLibrary_ImageFileType ``` **描述** 图像文件类型的枚举。 **起始版本:** 12 ### MediaLibrary_MediaContentType ``` typedef enum MediaLibrary_MediaContentType MediaLibrary_MediaContentType ``` **描述** 媒体内容类型的枚举。 **起始版本:** 12 ### MediaLibrary_MediaQuality ``` typedef enum MediaLibrary_MediaQuality MediaLibrary_MediaQuality ``` **描述** 媒体资源质量枚举。 此枚举与请求媒体资源时定义的分发模式有关。 - 快速分发:不考虑资源质量,直接基于现有资源返回。 - 高质量分发:返回高质量资源,若没有,则触发生成高质量资源,成功后才返回。 - 均衡分发:若存在高质量资源,则直接返回高质量资源。 否则,先返回低质量资源,并触发生成高质量资源,成功后再返回一次高质量资源。 **起始版本:** 12 ### MediaLibrary_MediaSubType ``` typedef enum MediaLibrary_MediaSubType MediaLibrary_MediaSubType ``` **描述** 媒体资源子类型的枚举。 **起始版本:** 12 ### MediaLibrary_MediaType ``` typedef enum MediaLibrary_MediaType MediaLibrary_MediaType ``` **描述** 媒体类型的枚举。 **起始版本:** 12 ### MediaLibrary_RequestId ``` typedef struct MediaLibrary_RequestId MediaLibrary_RequestId ``` **描述** 定义请求Id。 当请求媒体库资源时,会返回此类型。 请求Id用于取消请求。 如果请求失败,值将全为零,如 "00000000-0000-0000-0000-000000000000"。 **起始版本:** 12 ### MediaLibrary_RequestOptions ``` typedef struct MediaLibrary_RequestOptions MediaLibrary_RequestOptions ``` **描述** 请求策略模式配置项。 此结构体为媒体资源请求策略模式配置项。 **起始版本:** 12 ### MediaLibrary_ResourceType ``` typedef enum MediaLibrary_ResourceType MediaLibrary_ResourceType ``` **描述** 资源类型的枚举。 **起始版本:** 12 ### OH_MediaAsset ``` typedef struct OH_MediaAsset OH_MediaAsset ``` **描述** 定义媒体资产。 此结构体提供了封装文件资源属性的能力。 **起始版本:** 12 ### OH_MediaAssetChangeRequest ``` typedef struct OH_MediaAssetChangeRequest OH_MediaAssetChangeRequest ``` **描述** 定义媒体资产更改请求。 此结构体提供了处理媒体资产更改请求的能力。 **起始版本:** 12 ### OH_MediaAssetManager ``` typedef struct OH_MediaAssetManager OH_MediaAssetManager ``` **描述** 定义媒体资产管理器。 此结构提供了请求媒体库资源的能力。 如果创建失败,则返回空指针。 **起始版本:** 12 ### OH_MediaLibrary_OnDataPrepared ``` typedef void (*OH_MediaLibrary_OnDataPrepared)(int32_t result, MediaLibrary_RequestId requestId) ``` **描述** 当所请求的媒体资源准备完成时会触发回调。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | result | 请求资源处理的结果。 | | requestId | 请求Id。 | ### OH_MediaLibrary_OnImageDataPrepared ``` typedef void (*OH_MediaLibrary_OnImageDataPrepared)(MediaLibrary_ErrorCode result, MediaLibrary_RequestId requestId, MediaLibrary_MediaQuality mediaQuality, MediaLibrary_MediaContentType type, OH_ImageSourceNative* imageSourceNative) ``` **描述** 当请求的图像源准备就绪时调用。 当所请求的图像源准备就绪时,会调用此函数。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | result | 处理所请求资源的结果[MediaLibrary_ErrorCode](#medialibrary_errorcode-1)。 | | requestId | 请求的[MediaLibrary_RequestId](_media_library___request_id.md)。 | | mediaQuality | 请求源的[MediaLibrary_MediaQuality](#medialibrary_mediaquality-1)。 | | type | 请求源的[MediaLibrary_MediaContentType](#medialibrary_mediacontenttype-1)。 | | imageSourceNative | 当请求的图像源准备就绪时获取[OH_ImageSourceNative](../apis-image-kit/_image___native_module.md#oh_imagesourcenative)。 | ### OH_MediaLibrary_OnMovingPhotoDataPrepared ``` typedef void (*OH_MediaLibrary_OnMovingPhotoDataPrepared)(MediaLibrary_ErrorCode result, MediaLibrary_RequestId requestId, MediaLibrary_MediaQuality mediaQuality, MediaLibrary_MediaContentType type, OH_MovingPhoto* movingPhoto) ``` **描述** 当请求的动态照片准备就绪时调用。 当所请求的动态照片准备就绪时,会调用此函数。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | result | 处理所请求资源的结果[MediaLibrary_ErrorCode](#medialibrary_errorcode-1)。 | | requestId | 请求的[MediaLibrary_RequestId](_media_library___request_id.md)。 | | mediaQuality | 请求资源的[MediaLibrary_MediaQuality](#medialibrary_mediaquality-1)。 | | type | 请求资源的[MediaLibrary_MediaContentType](#medialibrary_mediacontenttype-1)。 | | movingPhoto | 当请求的动态图片准备就绪时获取[OH_MovingPhoto](#oh_movingphoto)。 | ### OH_MovingPhoto ``` typedef struct OH_MovingPhoto OH_MovingPhoto ``` **描述** 定义动态照片。 此结构体提供了获取关于动态照片的信息的能力。 **起始版本:** 13 ## 枚举类型说明 ### MediaLibrary_DeliveryMode ``` enum MediaLibrary_DeliveryMode ``` **描述** 请求资源分发模式。 此枚举定义了请求资源的分发模式。 - 快速分发:不考虑资源质量,直接基于现有资源返回。 - 高质量分发:返回高质量资源,若没有,则触发生成高质量资源,成功后才返回。 - 均衡分发:若存在高质量资源,则直接返回高质量资源。 否则,先返回低质量资源,并触发生成高质量资源,成功后再返回一次高质量资源。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_FAST_MODE | 快速分发。 | | MEDIA_LIBRARY_HIGH_QUALITY_MODE | 高质量分发。 | | MEDIA_LIBRARY_BALANCED_MODE | 均衡分发。 | ### MediaLibrary_ErrorCode ``` enum MediaLibrary_ErrorCode ``` **描述** 媒体库错误代码的枚举。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_OK | 媒体库结果正常。 | | MEDIA_LIBRARY_PERMISSION_DENIED | 权限被拒绝。 | | MEDIA_LIBRARY_PARAMETER_ERROR | 强制参数未指定,参数类型不正确或参数验证失败。 | | MEDIA_LIBRARY_NO_SUCH_FILE | 文件不存在。 | | MEDIA_LIBRARY_INVALID_DISPLAY_NAME | 显示名称无效。 | | MEDIA_LIBRARY_INVALID_ASSET_URI | 资产uri无效。 | | MEDIA_LIBRARY_INVALID_PHOTO_KEY | PhotoKey无效。 | | MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED | 不支持该操作。 | | MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR | 内部系统错误。 建议重试并检查日志。 可能的原因:
1. 数据库已损坏。
2. 文件系统异常。
3. IPC请求超时。 | ### MediaLibrary_ImageFileType ``` enum MediaLibrary_ImageFileType ``` **描述** 图像文件类型的枚举。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_IMAGE_JPEG | JPEG类型。 | ### MediaLibrary_MediaContentType ``` enum MediaLibrary_MediaContentType ``` **描述** 媒体内容类型的枚举。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_COMPRESSED | 压缩媒体内容类型。 | | MEDIA_LIBRARY_PICTURE_OBJECT | 图片对象媒体内容类型。 | ### MediaLibrary_MediaQuality ``` enum MediaLibrary_MediaQuality ``` **描述** 媒体资源质量枚举。 此枚举与请求媒体资源时定义的分发模式有关。 - 快速分发:不考虑资源质量,直接基于现有资源返回。 - 高质量分发:返回高质量资源,若没有,则触发生成高质量资源,成功后才返回。 - 均衡分发:若存在高质量资源,则直接返回高质量资源。 否则,先返回低质量资源,并触发生成高质量资源,成功后再返回一次高质量资源。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_QUALITY_FAST | 不考虑资源质量,直接返回的现有资源。 | | MEDIA_LIBRARY_QUALITY_FULL | 高质量资源。 | ### MediaLibrary_MediaSubType ``` enum MediaLibrary_MediaSubType ``` **描述** 媒体资源子类型的枚举。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_DEFAULT | 默认照片类型。 | | MEDIA_LIBRARY_MOVING_PHOTO | 动态照片类型。 | | MEDIA_LIBRARY_BURST | 连拍照片类型。 | ### MediaLibrary_MediaType ``` enum MediaLibrary_MediaType ``` **描述** 媒体类型的枚举。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_IMAGE | 图像资产。 | | MEDIA_LIBRARY_VIDEO | 视频资产。 | ### MediaLibrary_ResourceType ``` enum MediaLibrary_ResourceType ``` **描述** 资源类型的枚举。 **起始版本:** 12 | 枚举值 | 描述 | | -------- | -------- | | MEDIA_LIBRARY_IMAGE_RESOURCE | 图像资源。 | | MEDIA_LIBRARY_VIDEO_RESOURCE | 视频资源。 | ## 函数说明 ### OH_MediaAccessHelper_ApplyChanges() ``` MediaLibrary_ErrorCode OH_MediaAccessHelper_ApplyChanges(OH_MediaAssetChangeRequest* changeRequest) ``` **描述** 发起应用资产或相册的更改请求。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | changeRequest | 变更请求实例[OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)。 | **需要权限:** ohos.permission.WRITE_IMAGEVIDEO **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_PERMISSION_DENIED:没有权限。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetDateAdded() ``` ediaLibrary_ErrorCode OH_MediaAsset_GetDateAdded(OH_MediaAsset* mediaAsset, uint32_t* dateAdded) ``` **描述** 获取资产添加日期。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | dateAdded | 资产添加日期。该值是添加文件时间距1970年1月1日的秒数值。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetDateAddedMs() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetDateAddedMs(OH_MediaAsset* mediaAsset, uint32_t* dateAddedMs) ``` **描述** 获取资产的添加时间(毫秒)。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | dateAddedMs | 资产的添加时间(毫秒)。 该值是添加文件时间距1970年1月1日的毫秒数值。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetDateModified() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetDateModified(OH_MediaAsset* mediaAsset, uint32_t* dateModified) ``` **描述** 获取资产的修改日期。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | dateModified | 资产的修改日期。该值是修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetDateModifiedMs() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetDateModifiedMs(OH_MediaAsset* mediaAsset, uint32_t* dateModifiedMs) ``` **描述** 获取资产的修改时间(毫秒)。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | dateModifiedMs | 资产的修改时间(毫秒)。该值是修改文件时间距1970年1月1日的毫秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetDateTaken() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetDateTaken(OH_MediaAsset* mediaAsset, uint32_t* dateTaken) ``` **描述** 获取资产的拍摄日期。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | dateTaken | 资产的拍摄日期。该值是文件拍照时间距1970年1月1日的秒数值。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetDisplayName() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetDisplayName(OH_MediaAsset* mediaAsset, const char** displayName) ``` **描述** 获取媒体资源的显示名称。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | displayName | 媒体资源的显示名称。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetDuration() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetDuration(OH_MediaAsset* mediaAsset, uint32_t* duration) ``` **描述** 获取媒体资源的持续时间(毫秒)。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | duration | 媒体资源的持续时间(毫秒)。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetHeight() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetHeight(OH_MediaAsset* mediaAsset, uint32_t* height) ``` **描述** 获取媒体资源的图像高度(像素)。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | height | 媒体资源的图像高度(像素)。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetMediaSubType() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetMediaSubType(OH_MediaAsset* mediaAsset, MediaLibrary_MediaSubType* mediaSubType) ``` **描述** 获取媒体资源子类型。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | mediaSubType | 媒体资源子类型。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetMediaType() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetMediaType(OH_MediaAsset* mediaAsset, MediaLibrary_MediaType* mediaType) ``` **描述** 获取媒体资源类型。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | mediaType | 媒体资源类型。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetOrientation() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetOrientation(OH_MediaAsset* mediaAsset, uint32_t* orientation) ``` **描述** 获取图像的旋转角度,单位为度。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | orientation | 图像的旋转角度,单位为度。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetSize() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetSize(OH_MediaAsset* mediaAsset, uint32_t* size) ``` **描述** 获取媒体资产的文件大小。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | size | 媒体资源的文件大小(以字节为单位)。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetTitle() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetTitle(OH_MediaAsset* mediaAsset, const char** title) ``` **描述** 获取媒体资产的标题。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | title | 媒体资产的标题。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetUri() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetUri(OH_MediaAsset* mediaAsset, const char** uri) ``` **描述** 获取媒体资产的uri。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | uri | 媒体资产的uri。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_GetWidth() ``` MediaLibrary_ErrorCode OH_MediaAsset_GetWidth(OH_MediaAsset* mediaAsset, uint32_t* width) ``` **描述** 获取媒体资源的图像宽度(像素)。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | width | 媒体资源的图像宽度(像素)。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_IsFavorite() ``` MediaLibrary_ErrorCode OH_MediaAsset_IsFavorite(OH_MediaAsset* mediaAsset, uint32_t* favorite) ``` **描述** 获取资产的收藏状态。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | | favorite | 资产的收藏状态。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAsset_Release() ``` MediaLibrary_ErrorCode OH_MediaAsset_Release(OH_MediaAsset* mediaAsset) ``` **描述** 释放媒体资产 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAssetChangeRequest_AddResourceWithBuffer() ``` MediaLibrary_ErrorCode OH_MediaAssetChangeRequest_AddResourceWithBuffer(OH_MediaAssetChangeRequest* changeRequest, MediaLibrary_ResourceType resourceType, uint8_t* buffer, uint32_t length) ``` **描述** 通过ArrayBuffer数据添加资源。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | changeRequest | [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | | resourceType | 要添加的资源的[MediaLibrary_ResourceType](#medialibrary_resourcetype)。 | | buffer | 要添加的数据缓冲区。 | | length | 数据缓冲区的长度。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAssetChangeRequest_AddResourceWithUri() ``` MediaLibrary_ErrorCode OH_MediaAssetChangeRequest_AddResourceWithUri(OH_MediaAssetChangeRequest* changeRequest, MediaLibrary_ResourceType resourceType, char* fileUri) ``` **描述** 通过文件uri添加资源。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | changeRequest | [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | | resourceType | 要添加的资源的[MediaLibrary_ResourceType](#medialibrary_resourcetype)。 | | fileUri | 文件uri。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_NO_SUCH_FILE:文件不存在。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 - MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED:不支持该操作。 ### OH_MediaAssetChangeRequest_Create() ``` OH_MediaAssetChangeRequest* OH_MediaAssetChangeRequest_Create(OH_MediaAsset* mediaAsset) ``` **描述** 创建[OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | mediaAsset | [OH_MediaAsset](#oh_mediaasset)实例。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAssetChangeRequest_DiscardCameraPhoto() ``` MediaLibrary_ErrorCode OH_MediaAssetChangeRequest_DiscardCameraPhoto(OH_MediaAssetChangeRequest* changeRequest) ``` **描述** 丢弃相机拍摄的照片资源。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | changeRequest | [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 - MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED:不支持该操作。 ### OH_MediaAssetChangeRequest_GetWriteCacheHandler() ``` MediaLibrary_ErrorCode OH_MediaAssetChangeRequest_GetWriteCacheHandler(OH_MediaAssetChangeRequest* changeRequest, int32_t* fd) ``` **描述** 获取临时文件写句柄。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | changeRequest | [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | | fd | 临时文件写句柄。 | **需要权限:** ohos.permission.WRITE_IMAGEVIDEO **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 - MEDIA_LIBRARY_PERMISSION_DENIED:没有权限。 - MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED:不支持该操作。 ### OH_MediaAssetChangeRequest_Release() ``` MediaLibrary_ErrorCode OH_MediaAssetChangeRequest_Release(OH_MediaAssetChangeRequest* changeRequest) ``` **描述** 释放[OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | changeRequest | [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 ### OH_MediaAssetChangeRequest_SaveCameraPhoto() ``` MediaLibrary_ErrorCode OH_MediaAssetChangeRequest_SaveCameraPhoto(OH_MediaAssetChangeRequest* changeRequest, MediaLibrary_ImageFileType imageFileType) ``` **描述** 保存相机拍摄的照片资源。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | changeRequest | [OH_MediaAssetChangeRequest](#oh_mediaassetchangerequest)实例。 | | imageFileType | 要保存的照片的[MediaLibrary_ImageFileType](#medialibrary_imagefiletype)。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 - MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED:不支持该操作。 ### OH_MediaAssetManager_CancelRequest() ``` bool OH_MediaAssetManager_CancelRequest(OH_MediaAssetManager* manager, const MediaLibrary_RequestId requestId) ``` **描述** 通过请求Id取消请求。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | manager | 指向OH_MediaAssetManager实例的指针。 | | requestId | 待取消的请求Id。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 如果请求成功取消,则返回true;否则返回false。 ### OH_MediaAssetManager_Create() ``` OH_MediaAssetManager* OH_MediaAssetManager_Create(void) ``` **描述** 创建一个媒体资产管理器。 **起始版本:** 12 **返回:** 返回一个指向OH_MediaAssetManager实例的指针。 ### OH_MediaAssetManager_Release() ``` MediaLibrary_ErrorCode OH_MediaAssetManager_Release(OH_MediaAssetManager* manager) ``` **描述** 释放[OH_MediaAssetManager](#oh_mediaassetmanager)实例。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | manager | 要释放的[OH_MediaAssetManager](#oh_mediaassetmanager)实例。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 ### OH_MediaAssetManager_RequestImage() ``` MediaLibrary_ErrorCode OH_MediaAssetManager_RequestImage(OH_MediaAssetManager* manager, OH_MediaAsset* mediaAsset, MediaLibrary_RequestOptions requestOptions, MediaLibrary_RequestId* requestId, OH_MediaLibrary_OnImageDataPrepared callback) ``` **描述** 根据不同的策略模式请求图像资源。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | manager | [OH_MediaAssetManager](#oh_mediaassetmanager)实例指针。 | | mediaAsset | 要请求的媒体文件对象的[OH_MediaAsset](#oh_mediaasset)实例。 | | requestOptions | 用于图像请求策略模式的[MediaLibrary_RequestOptions](_media_library___request_options.md)。 | | requestId | 请求的[MediaLibrary_RequestId](_media_library___request_id.md),出参。 | | callback | 当请求的图像源准备就绪时调用[OH_MediaLibrary_OnImageDataPrepared](#oh_medialibrary_onimagedataprepared)。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED:不支持该操作。 - MEDIA_LIBRARY_PERMISSION_DENIED:没有权限。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAssetManager_RequestImageForPath() ``` MediaLibrary_RequestId OH_MediaAssetManager_RequestImageForPath(OH_MediaAssetManager* manager, const char* uri, MediaLibrary_RequestOptions requestOptions, const char* destPath, OH_MediaLibrary_OnDataPrepared callback) ``` **描述** 请求具有目标路径的图像资源。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | manager | 指向OH_MediaAssetManager实例的指针。 | | uri | 请求的图像资源的uri。 | | requestOptions | 请求策略模式配置项。 | | destPath | 请求资源的目标地址。 | | callback | 媒体资源处理器,当所请求的媒体资源准备完成时会触发回调。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 返回请求Id。 ### OH_MediaAssetManager_RequestMovingPhoto() ``` MediaLibrary_ErrorCode OH_MediaAssetManager_RequestMovingPhoto(OH_MediaAssetManager* manager, OH_MediaAsset* mediaAsset, MediaLibrary_RequestOptions requestOptions, MediaLibrary_RequestId* requestId, OH_MediaLibrary_OnMovingPhotoDataPrepared callback) ``` **描述** 根据不同的策略模式请求动态照片资源。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | manager | [OH_MediaAssetManager](#oh_mediaassetmanager)实例指针。 | | mediaAsset | 要请求的媒体文件对象的[OH_MediaAsset](#oh_mediaasset)实例。 | | requestOptions | 用于图像请求策略模式的[MediaLibrary_RequestOptions](_media_library___request_options.md)。 | | requestId | 请求的[MediaLibrary_RequestId](_media_library___request_id.md),出参。 | | callback | 当请求的动态照片准备就绪时调用[OH_MediaLibrary_OnMovingPhotoDataPrepared](#oh_medialibrary_onmovingphotodataprepared)。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_OPERATION_NOT_SUPPORTED:不支持该操作。 - MEDIA_LIBRARY_PERMISSION_DENIED:没有权限。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MediaAssetManager_RequestVideoForPath() ``` MediaLibrary_RequestId OH_MediaAssetManager_RequestVideoForPath(OH_MediaAssetManager* manager, const char* uri, MediaLibrary_RequestOptions requestOptions, const char* destPath, OH_MediaLibrary_OnDataPrepared callback) ``` **描述** 请求具有目标路径的视频资源。 **起始版本:** 12 **参数:** | 名称 | 描述 | | -------- | -------- | | manager | 指向OH_MediaAssetManager实例的指针。 | | uri | 请求的视频资源的uri。 | | requestOptions | 请求策略模式配置项。 | | destPath | 请求资源的目标地址。 | | callback | 媒体资源处理器,当所请求的媒体资源准备完成时会触发回调。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 返回请求Id。 ### OH_MovingPhoto_GetUri() ``` MediaLibrary_ErrorCode OH_MovingPhoto_GetUri(OH_MovingPhoto* movingPhoto, const char** uri) ``` **描述** 获取动态照片的uri。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | movingPhoto | [OH_MovingPhoto](#oh_movingphoto)实例。 | | uri | 动态照片的uri。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MovingPhoto_Release() ``` MediaLibrary_ErrorCode OH_MovingPhoto_Release(OH_MovingPhoto* movingPhoto) ``` **描述** Release [OH_MovingPhoto](#oh_movingphoto)实例。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | movingPhoto | 要释放的[OH_MovingPhoto](#oh_movingphoto)实例。 | **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 ### OH_MovingPhoto_RequestContentWithBuffer() ``` MediaLibrary_ErrorCode OH_MovingPhoto_RequestContentWithBuffer(OH_MovingPhoto* movingPhoto, MediaLibrary_ResourceType resourceType, const uint8_t** buffer, uint32_t* size) ``` **描述** 请求指定资源类型的动态照片内容,以ArrayBuffer的形式返回。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | movingPhoto | [OH_MovingPhoto](#oh_movingphoto)实例。 | | resourceType | 指定的资源类型[MediaLibrary_ResourceType](#medialibrary_resourcetype)。 | | buffer | 保存目标文件数据的缓冲区。 | | size | 缓冲区的大小。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_PERMISSION_DENIED:没有权限。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MovingPhoto_RequestContentWithUri() ``` MediaLibrary_ErrorCode OH_MovingPhoto_RequestContentWithUri(OH_MovingPhoto* movingPhoto, MediaLibrary_ResourceType resourceType, char* uri) ``` **描述** 请求指定资源类型的动态照片内容,并写入参数指定的uri中。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | movingPhoto | [OH_MovingPhoto](#oh_movingphoto)实例。 | | resourceType | 指定的资源类型[MediaLibrary_ResourceType](#medialibrary_resourcetype)。 | | uri | 保存数据的目标文件uri。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_PERMISSION_DENIED:没有权限。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。 ### OH_MovingPhoto_RequestContentWithUris() ``` MediaLibrary_ErrorCode OH_MovingPhoto_RequestContentWithUris(OH_MovingPhoto* movingPhoto, char* imageUri, char* videoUri) ``` **描述** 同时请求动态照片的图片内容和视频内容,并写入参数指定的对应的uri中。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | movingPhoto | [OH_MovingPhoto](#oh_movingphoto)实例。 | | imageUri | 用于保存图像数据的目标文件uri。 | | videoUri | 用于保存视频数据的目标文件uri。 | **需要权限:** ohos.permission.READ_IMAGEVIDEO **返回:** 错误码[MediaLibrary_ErrorCode](#medialibrary_errorcode-1): - MEDIA_LIBRARY_OK:方法调用成功。 - MEDIA_LIBRARY_PARAMETER_ERROR:参数错误。 可能的原因: 1. 未指定强制参数。 2. 参数类型不正确。 3. 参数验证失败。 - MEDIA_LIBRARY_PERMISSION_DENIED:没有权限。 - MEDIA_LIBRARY_INTERNAL_SYSTEM_ERROR:内部系统错误。