harmony 鸿蒙AVSource
AVSource
概述
AVSource模块提供用于构造媒体资源对象功能的函数。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
汇总
文件
名称 | 描述 |
---|---|
native_avsource.h | 声明用于音视频媒体数据解析的接口。 |
类型定义
名称 | 描述 |
---|---|
typedef struct OH_AVSource OH_AVSource | 为媒体资源接口定义native层对象。 |
函数
名称 | 描述 |
---|---|
OH_AVSource * OH_AVSource_CreateWithDataSource (OH_AVDataSource *dataSource) | 为用户自定义数据源的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。 |
OH_AVSource * OH_AVSource_CreateWithURI (char *uri) | 为统一资源标识符对应的资源对象创建OH_AVSource实例。 |
OH_AVSource * OH_AVSource_CreateWithFD (int32_t fd, int64_t offset, int64_t size) | 为文件描述符对应的资源对象创建OH_AVSource实例。 |
OH_AVErrCode OH_AVSource_Destroy (OH_AVSource *source) | 销毁OH_AVSource实例并清理内部资源。 |
OH_AVFormat * OH_AVSource_GetSourceFormat (OH_AVSource *source) | 获取媒体资源文件的基础信息。 |
OH_AVFormat * OH_AVSource_GetTrackFormat (OH_AVSource *source, uint32_t trackIndex) | 获取轨道的基础信息。 |
OH_AVFormat * OH_AVSource_GetCustomMetadataFormat (OH_AVSource *source) | 获取自定义元数据的基础信息。 |
类型定义说明
OH_AVSource
typedef struct OH_AVSource OH_AVSource
描述 为媒体资源接口定义native层对象。
起始版本: 10
函数说明
OH_AVSource_CreateWithDataSource()
OH_AVSource* OH_AVSource_CreateWithDataSource (OH_AVDataSource * dataSource)
描述 为用户自定义数据源的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 12
参数:
名称 | 描述 |
---|---|
dataSource | 用户自定义数据源。 |
返回:
如果执行成功,则返回一个指向OH_AVSource实例的指针,否则返回NULL。
可能的故障原因: 1. dataSource为nullptr; 2. dataSource->size == 0; 3. 设置数据源失败; 4. 内存不足; 5. 解码器引擎为nullptr; 6. dataSource->readAt == nullptr。
OH_AVSource_CreateWithFD()
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
参数:
名称 | 描述 |
---|---|
fd | 数据资源的文件描述符。 |
offset | 开始读取数据的位置。 |
size | 文件的字节数大小。 |
返回:
执行成功返回一个指向OH_AVSource实例的指针,否则返回NULL。
可能的故障原因:
- fd无效;
- 传入offset不是文件起始位置;
- size错误;
- 资源无效;
- 文件格式不支持。
OH_AVSource_CreateWithURI()
OH_AVSource* OH_AVSource_CreateWithURI (char *uri)
描述 为统一资源标识符对应的的资源对象创建OH_AVSource实例,可以通过调用OH_AVSource_Destroy接口释放实例。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
名称 | 描述 |
---|---|
uri | 远程媒体资源的统一资源标识符。 |
返回:
执行成功返回一个指向OH_AVSource实例的指针,否则返回NULL。
可能的故障原因:
- 网络异常;
- 资源无效;
- 文件格式不支持。
OH_AVSource_Destroy()
OH_AVErrCode OH_AVSource_Destroy (OH_AVSource *source)
描述 销毁OH_AVSource实例并清理内部资源。同一实例只能被销毁一次。销毁的实例在被重新创建之前不能再被使用。建议实例销毁成功后将指针置为NULL。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
名称 | 描述 |
---|---|
source | 指向OH_AVSource实例的指针。 |
返回:
返回函数结果:
AV_ERR_OK:操作成功。
AV_ERR_INVALID_VAL:
1. source指针无效;
2. 空指针或非OH_AVSource实例。
OH_AVSource_GetCustomMetadataFormat()
OH_AVFormat *OH_AVSource_GetCustomMetadataFormat(OH_AVSource *source)
描述
获取自定义元数据的基础信息。
需要注意的是,指向的OH_AVFormat实例在生命周期结束时需开发者通过调用接口OH_AVFormat_Destroy释放。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 18
参数:
名称 | 描述 |
---|---|
source | 指向OH_AVSource实例的指针。 |
返回:
执行成功返回元数据的基础信息,否则返回NULL。
可能的故障原因:
- source指针无效;
- 空指针或非OH_AVSource实例;
- source没有初始化。
OH_AVSource_GetSourceFormat()
OH_AVFormat* OH_AVSource_GetSourceFormat (OH_AVSource *source)
描述 获取媒体资源文件的基础信息。
需要注意的是,指向的OH_AVFormat实例在生命周期结束时需开发者通过调用接口OH_AVFormat_Destroy释放。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
名称 | 描述 |
---|---|
source | 指向OH_AVSource实例的指针。 |
返回:
执行成功返回文件的基础信息,否则返回NULL。
可能的故障原因:
- source指针无效;
- 空指针或非OH_AVSource实例;
- source没有初始化。
OH_AVSource_GetTrackFormat()
OH_AVFormat* OH_AVSource_GetTrackFormat (OH_AVSource *source, uint32_t trackIndex)
描述 获取轨道的基础信息。
需要注意的是,指向的OH_AVFormat实例在生命周期结束时需开发者通过调用接口OH_AVFormat_Destroy释放。
系统能力: SystemCapability.Multimedia.Media.Spliter
起始版本: 10
参数:
名称 | 描述 |
---|---|
source | 指向OH_AVSource实例的指针。 |
trackIndex | 需要获取信息的轨道的索引。 |
返回:
执行成功返回轨道的基础信息,否则返回NULL。
可能的故障原因:
- source指针无效,空指针或非OH_AVSource实例;
- 轨道的索引超出范围;
- source没有初始化。
你可能感兴趣的鸿蒙文章
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦