1# AVSource 2 3 4## 概述 5 6AVSource模块提供用于构造音视频资源对象功能的函数。 7 8**系统能力:** SystemCapability.Multimedia.Media.Spliter 9 10**起始版本:** 10 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [native_avsource.h](native__avsource_8h.md) | 声明用于音视频解封装的Native API。 | 21 22 23### 函数 24 25| 名称 | 描述 | 26| -------- | -------- | 27| OH_AVSource \* [OH_AVSource_CreateWithURI](#oh_avsource_createwithuri) (char \*uri) | 为统一资源标识符对应的的资源对象创建OH_AVSource实例对象。 | 28| OH_AVSource \* [OH_AVSource_CreateWithFD](#oh_avsource_createwithfd) (int32_t fd, int64_t offset, int64_t size) | 为文件描述符对应的资源对象创建OH_AVSource实例对象。 | 29| [OH_AVErrCode](_core.md#oh_averrcode)[OH_AVSource_Destroy](#oh_avsource_destroy) (OH_AVSource \*source) | 销毁OH_AVSource实例并清理内部资源。 | 30| OH_AVFormat \* [OH_AVSource_GetSourceFormat](#oh_avsource_getsourceformat) (OH_AVSource \*source) | 获取媒体资源文件的基础信息。 | 31| OH_AVFormat \* [OH_AVSource_GetTrackFormat](#oh_avsource_gettrackformat) (OH_AVSource \*source, uint32_t trackIndex) | 获取轨道的基础信息。 | 32 33 34## 函数说明 35 36 37### OH_AVSource_CreateWithFD() 38 39``` 40OH_AVSource* OH_AVSource_CreateWithFD (int32_t fd, int64_t offset, int64_t size) 41``` 42 43**描述** 44 45为文件描述符对应的资源对象创建OH_AVSource实例对象。 46 47可以通过调用OH_AVSource_Destroy释放实例。 48 49该接口如果传入offset不为文件起始位置,或size不为文件大小时,可能会因数据获取不完整导致 OH_AVSource创建失败、后续解封装失败等未定义错误。 50 51**系统能力:** SystemCapability.Multimedia.Media.Spliter 52 53**起始版本:** 10 54 55**参数:** 56 57| 名称 | 描述 | 58| -------- | -------- | 59| fd | 数据资源的文件描述符。 | 60| offset | 开始读取数据的位置。 | 61| size | 文件的字节数大小。 | 62 63**返回:** 64 65返回一个指向OH_AVSource实例的指针。 66 67 68### OH_AVSource_CreateWithURI() 69 70``` 71OH_AVSource* OH_AVSource_CreateWithURI (char *uri) 72``` 73 74**描述** 75 76为统一资源标识符对应的的资源对象创建OH_AVSource实例对象,可以通过调用OH_AVSource_Destroy释放实例。 77 78**系统能力:** SystemCapability.Multimedia.Media.Spliter 79 80**起始版本:** 10 81 82**参数:** 83 84| 名称 | 描述 | 85| -------- | -------- | 86| uri | 远程媒体资源的统一资源标识符。 | 87 88**返回:** 89 90返回一个指向OH_AVSource实例的指针。 91 92 93### OH_AVSource_Destroy() 94 95``` 96OH_AVErrCode OH_AVSource_Destroy (OH_AVSource *source) 97``` 98 99**描述** 100 101销毁OH_AVSource实例并清理内部资源。 102 103同一实例只能被销毁一次。销毁的实例在被重新创建之前不能再被使用。建议实例销毁成功后将指针置为NULL。 104 105**系统能力:** SystemCapability.Multimedia.Media.Spliter 106 107**起始版本:** 10 108 109**参数:** 110 111| 名称 | 描述 | 112| -------- | -------- | 113| source | 指向OH_AVSource实例的指针。 | 114 115**返回:** 116 117执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅 [OH_AVErrCode](_core.md#oh_averrcode)。 118 119 120### OH_AVSource_GetSourceFormat() 121 122``` 123OH_AVFormat* OH_AVSource_GetSourceFormat (OH_AVSource *source) 124``` 125 126**描述** 127 128获取媒体资源文件的基础信息。 129 130**系统能力:** SystemCapability.Multimedia.Media.Spliter 131 132**起始版本:** 10 133 134**参数:** 135 136| 名称 | 描述 | 137| -------- | -------- | 138| source | 指向OH_AVSource实例的指针。 | 139 140**返回:** 141 142返回媒体资源文件的基础信息。 143 144 145### OH_AVSource_GetTrackFormat() 146 147``` 148OH_AVFormat* OH_AVSource_GetTrackFormat (OH_AVSource *source, uint32_t trackIndex) 149``` 150 151**描述** 152 153获取轨道的基础信息。 154 155**系统能力:** SystemCapability.Multimedia.Media.Spliter 156 157**起始版本:** 10 158 159**参数:** 160 161| 名称 | 描述 | 162| -------- | -------- | 163| source | 指向OH_AVSource实例的指针。 | 164| trackIndex | 需要获取信息的轨道的索引。 | 165 166**返回:** 167 168返回轨道的基础信息。 169