智能客服
你问我答,随时在线为你解决问题

























声明用于音视频媒体数据解析的接口。
引用文件: <multimedia/player_framework/native_avsource.h>
库: libnative_media_avsource.so
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
相关模块: AVSource
相关示例: AVCodec
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_AVSource | OH_AVSource | 为媒体资源接口定义native层对象。 |
| 名称 | 描述 |
|---|---|
| OH_AVSource *OH_AVSource_CreateWithDataSource(OH_AVDataSource *dataSource) | 为用户自定义数据源的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。 参数dataSource生命周期需与返回的指针OH_AVSource *保持一致。 |
| OH_AVSource *OH_AVSource_CreateWithDataSourceExt(OH_AVDataSourceExt *dataSource, void *userData) | 为用户自定义数据源的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。 回调支持通过userData传递用户自定义数据。 参数dataSource生命周期需与返回的指针OH_AVSource *保持一致。 |
| OH_AVSource *OH_AVSource_CreateWithURI(char *uri) | 为统一资源标识符对应的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。该接口仅支持HTTP渐进式流媒体,不支持HLS/DASH的流媒体;对于HLS/DASH的流媒体播放,推荐使用AVPlayer组件进行开发。 |
| OH_AVSource *OH_AVSource_CreateWithFD(int32_t fd, int64_t offset, int64_t size) | 为文件描述符对应的资源对象创建OH_AVSource实例。可以通过调用OH_AVSource_Destroy接口释放实例。 接口如果传入offset不为文件起始位置,或size不为文件大小时,可能会因数据获取不完整导致OH_AVSource创建失败、后续解封装失败等未定义错误。 |
| OH_AVErrCode OH_AVSource_Destroy(OH_AVSource *source) | 销毁OH_AVSource实例并清理内部资源。 同一实例只能被销毁一次。销毁的实例在被重新创建之前不能再被使用。建议实例销毁成功后将指针置为NULL。 |
| OH_AVFormat *OH_AVSource_GetSourceFormat(OH_AVSource *source) | 获取媒体资源文件的基础信息。 需要注意的是,指向的OH_AVFormat实例在生命周期结束时需调用者通过调用接口OH_AVFormat_Destroy释放。 |
| OH_AVFormat *OH_AVSource_GetTrackFormat(OH_AVSource *source, uint32_t trackIndex) | 获取轨道的基础信息。 需要注意的是,指向的OH_AVFormat实例在生命周期结束时需调用者通过调用接口OH_AVFormat_Destroy释放。 |
| OH_AVFormat *OH_AVSource_GetCustomMetadataFormat(OH_AVSource *source) | 获取自定义元数据的基础信息。 需要注意的是,指向的OH_AVFormat实例在生命周期结束时需开发者通过调用接口OH_AVFormat_Destroy释放。 |
- OH_AVSource *OH_AVSource_CreateWithDataSource(OH_AVDataSource *dataSource)
描述
为用户自定义数据源的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。
参数dataSource生命周期需与返回的指针OH_AVSource *保持一致。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVDataSource *dataSource | 用户自定义数据源。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVSource * | 如果执行成功,则返回一个指向OH_AVSource实例的指针,否则返回NULL。 可能的故障原因: 1. dataSource为nullptr。 2. dataSource->size == 0。 3. 设置数据源失败。 4. 内存不足。 5. 解码器引擎为nullptr。 6. dataSource->readAt == nullptr。 |
- OH_AVSource *OH_AVSource_CreateWithDataSourceExt(OH_AVDataSourceExt *dataSource, void *userData)
描述
为用户自定义数据源的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。
回调支持通过userData传递用户自定义数据。
参数dataSource生命周期需与返回的指针OH_AVSource *保持一致。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVDataSourceExt *dataSource | 指向数据源结构体的指针,该结构体可用于获取输入数据。 |
| void *userData | 指向用户自定义数据的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVSource * | 如果执行成功,则返回一个指向OH_AVSource实例的指针,否则返回NULL。 可能的故障原因: 1. dataSource为nullptr。 2. dataSource->size == 0。 3. 设置数据源失败。 4. 内存不足。 5. 解码器引擎为nullptr。 6. dataSource->readAt == nullptr。 |
- OH_AVSource *OH_AVSource_CreateWithURI(char *uri)
描述
为统一资源标识符对应的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。该接口仅支持HTTP渐进式流媒体,不支持HLS/DASH的流媒体;对于HLS/DASH的流媒体播放,推荐使用AVPlayer组件进行开发。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| char *uri | 远程媒体资源的统一资源标识符。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVSource * | 执行成功返回一个指向OH_AVSource实例的指针,否则返回NULL。 可能的故障原因: 1. 网络异常。 2. 资源无效。 3. 文件格式不支持。 4. 应用配置明文拦截。 |
- 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
参数:
| 参数项 | 描述 |
|---|---|
| int32_t fd | 数据资源的文件描述符。 |
| int64_t offset | 开始读取数据的位置,单位为字节。 |
| int64_t size | 文件的字节数大小,表示从offset指定位置开始可读取的数据长度。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVSource * | 执行成功返回一个指向OH_AVSource实例的指针,否则返回NULL。 可能的故障原因: 1. fd无效。 2. 传入offset不是文件起始位置。 3. size错误。 4. 资源无效。 5. 文件格式不支持。 |
- OH_AVErrCode OH_AVSource_Destroy(OH_AVSource *source)
描述
销毁OH_AVSource实例并清理内部资源。
同一实例只能被销毁一次。销毁的实例在被重新创建之前不能再被使用。建议实例销毁成功后将指针置为NULL。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVSource *source | 指向OH_AVSource实例的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVErrCode | AV_ERR_OK:操作成功。 AV_ERR_INVALID_VAL: 1. source指针无效,空指针。 2. 非OH_AVSource实例。 |
- OH_AVFormat *OH_AVSource_GetSourceFormat(OH_AVSource *source)
描述
获取媒体资源文件的基础信息。
需要注意的是,指向的OH_AVFormat实例在生命周期结束时需调用者通过调用接口OH_AVFormat_Destroy释放。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVSource *source | 指向OH_AVSource实例的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVFormat * | 执行成功返回文件的基础信息,否则返回NULL。 可能的故障原因: 1. source指针无效。 2. 空指针或非OH_AVSource实例。 3. source没有初始化。 |
- OH_AVFormat *OH_AVSource_GetTrackFormat(OH_AVSource *source, uint32_t trackIndex)
描述
获取轨道的基础信息。
需要注意的是,指向的OH_AVFormat实例在生命周期结束时需调用者通过调用接口OH_AVFormat_Destroy释放。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVSource *source | 指向OH_AVSource实例的指针。 |
| uint32_t trackIndex | 需要获取信息的轨道的索引。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVFormat * | 执行成功返回轨道的基础信息,否则返回NULL。 可能的故障原因: 1. source指针无效,空指针或非OH_AVSource实例。 2. 轨道的索引超出范围。 3. source没有初始化。 |
- OH_AVFormat *OH_AVSource_GetCustomMetadataFormat(OH_AVSource *source)
描述
获取自定义元数据的基础信息。
需要注意的是,指向的OH_AVFormat实例在生命周期结束时需调用者通过调用接口OH_AVFormat_Destroy释放。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 18
参数:
| 参数项 | 描述 |
|---|---|
| OH_AVSource *source | 指向OH_AVSource实例的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_AVFormat * | 执行成功返回元数据的基础信息,否则返回NULL。 可能的故障原因: 1. source指针无效。 2. 空指针或非OH_AVSource实例。 3. source没有初始化。 |
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功