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