# AVSource ## 概述 AVSource模块提供用于构造音视频资源对象功能的函数。 **系统能力:** SystemCapability.Multimedia.Media.Spliter **起始版本:** 10 ## 汇总 ### 文件 | 名称 | 描述 | | -------- | -------- | | [native_avsource.h](native__avsource_8h.md) | 声明用于音视频解封装的Native API。 | ### 函数 | 名称 | 描述 | | -------- | -------- | | OH_AVSource \* [OH_AVSource_CreateWithURI](#oh_avsource_createwithuri) (char \*uri) | 为统一资源标识符对应的的资源对象创建OH_AVSource实例对象。 | | OH_AVSource \* [OH_AVSource_CreateWithFD](#oh_avsource_createwithfd) (int32_t fd, int64_t offset, int64_t size) | 为文件描述符对应的资源对象创建OH_AVSource实例对象。 | | [OH_AVErrCode](_core.md#oh_averrcode)[OH_AVSource_Destroy](#oh_avsource_destroy) (OH_AVSource \*source) | 销毁OH_AVSource实例并清理内部资源。 | | OH_AVFormat \* [OH_AVSource_GetSourceFormat](#oh_avsource_getsourceformat) (OH_AVSource \*source) | 获取媒体资源文件的基础信息。 | | OH_AVFormat \* [OH_AVSource_GetTrackFormat](#oh_avsource_gettrackformat) (OH_AVSource \*source, uint32_t trackIndex) | 获取轨道的基础信息。 | ## 函数说明 ### OH_AVSource_CreateWithFD() ``` OH_AVSource* OH_AVSource_CreateWithFD (int32_t fd, int64_t offset, int64_t size) ``` **描述** 为文件描述符对应的资源对象创建OH_AVSource实例对象。 可以通过调用OH_AVSource_Destroy释放实例。 该接口如果传入offset不为文件起始位置,或size不为文件大小时,可能会因数据获取不完整导致 OH_AVSource创建失败、后续解封装失败等未定义错误。 **系统能力:** SystemCapability.Multimedia.Media.Spliter **起始版本:** 10 **参数:** | 名称 | 描述 | | -------- | -------- | | fd | 数据资源的文件描述符。 | | offset | 开始读取数据的位置。 | | size | 文件的字节数大小。 | **返回:** 返回一个指向OH_AVSource实例的指针。 ### OH_AVSource_CreateWithURI() ``` OH_AVSource* OH_AVSource_CreateWithURI (char *uri) ``` **描述** 为统一资源标识符对应的的资源对象创建OH_AVSource实例对象,可以通过调用OH_AVSource_Destroy释放实例。 **系统能力:** SystemCapability.Multimedia.Media.Spliter **起始版本:** 10 **参数:** | 名称 | 描述 | | -------- | -------- | | uri | 远程媒体资源的统一资源标识符。 | **返回:** 返回一个指向OH_AVSource实例的指针。 ### OH_AVSource_Destroy() ``` OH_AVErrCode OH_AVSource_Destroy (OH_AVSource *source) ``` **描述** 销毁OH_AVSource实例并清理内部资源。 同一实例只能被销毁一次。销毁的实例在被重新创建之前不能再被使用。建议实例销毁成功后将指针置为NULL。 **系统能力:** SystemCapability.Multimedia.Media.Spliter **起始版本:** 10 **参数:** | 名称 | 描述 | | -------- | -------- | | source | 指向OH_AVSource实例的指针。 | **返回:** 执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅 [OH_AVErrCode](_core.md#oh_averrcode)。 ### OH_AVSource_GetSourceFormat() ``` OH_AVFormat* OH_AVSource_GetSourceFormat (OH_AVSource *source) ``` **描述** 获取媒体资源文件的基础信息。 **系统能力:** SystemCapability.Multimedia.Media.Spliter **起始版本:** 10 **参数:** | 名称 | 描述 | | -------- | -------- | | source | 指向OH_AVSource实例的指针。 | **返回:** 返回媒体资源文件的基础信息。 ### OH_AVSource_GetTrackFormat() ``` OH_AVFormat* OH_AVSource_GetTrackFormat (OH_AVSource *source, uint32_t trackIndex) ``` **描述** 获取轨道的基础信息。 **系统能力:** SystemCapability.Multimedia.Media.Spliter **起始版本:** 10 **参数:** | 名称 | 描述 | | -------- | -------- | | source | 指向OH_AVSource实例的指针。 | | trackIndex | 需要获取信息的轨道的索引。 | **返回:** 返回轨道的基础信息。