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