文档管理中心
您当前正在浏览HarmonyOS最新文档,覆盖已发布的所有API版本,可在API参考中筛选您使用的API版本。详细的版本配套关系请参考版本说明
开发与测试开放能力API媒体AVCodec Kit(音视频编解码服务)C API头文件native_avsource.h

native_avsource.h

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

概述

声明用于音视频媒体数据解析的接口。

引用文件: <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_CreateWithDataSource()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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_CreateWithDataSourceExt()

Phone20+PC/2in120+Tablet20+TV20+Wearable20+
收起
自动换行
深色代码主题
复制
  1. 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_CreateWithURI()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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_CreateWithFD()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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_AVSource_Destroy()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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_AVSource_GetSourceFormat()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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_AVSource_GetTrackFormat()

Phone12+PC/2in113+Tablet12+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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_AVSource_GetCustomMetadataFormat()

Phone18+PC/2in118+Tablet18+TV19+Wearable18+
收起
自动换行
深色代码主题
复制
  1. 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没有初始化。

在 开发与测试 开放能力API 中进行搜索
请输入您想要搜索的关键词