创新互联鸿蒙OS教程:鸿蒙OS视频提取开发指导
场景介绍

创新互联公司网络公司拥有十载的成都网站开发建设经验,上1000家客户的共同信赖。提供成都网站制作、成都做网站、外贸营销网站建设、网站开发、网站定制、买友情链接、建网站、网站搭建、响应式网站开发、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
视频提取主要工作是将多媒体文件中的音视频数据进行分离,提取出音频、视频数据源。
接口说明
| 接口名 | 功能描述 |
|---|---|
| Extractor() | 创建 Extractor 实例。 |
| setSource(Source source) | 设置媒体播放源。 |
| getStreamFormat(int id) | 获取对应索引的轨道数据的格式。 |
| getTotalStreams() | 获取媒体文件中总轨道数。 |
| selectStream(int id) | 根据轨道号选择媒体文件中对应的轨道。 |
| unselectStream(int id) | 取消轨道选择。 |
| rewindTo(long microseconds, int mode) | 根据时间和 mode 跳转到指定帧。 |
| next() | 跳转到下一帧。 |
| readBuffer(ByteBuffer buf, int offset) | 读取解复用后的数据。 |
| getStreamId() | 获取当前轨道号。 |
| getFrameTimestamp() | 获取当前媒体数据帧的时间戳。 |
| getFrameSize() | 获取当前媒体数据帧的数据大小。 |
| getFrameType() | 获取当前媒体数据帧的flags。 |
| release() | 释放资源。 |
开发步骤
- 调用 Extractor() 方法创建 Extractor 实例。
- 构造数据源对象,并调用 Extractor 实例的 setSource(Source source) 方法,设置媒体源,代码示例如下:
Extractor extractor = new Extractor();
FileDescriptor fd = in.getFD();
Source source = new Source(fd);
extractor.setSource(source);
- 调用 getTotalStreams() 方法获取媒体的轨道数量。
- 调用 selectStream(int id) 方法选择特定轨道的数据,进行提取。
- (可选)调用 unselectStream(int id) 方法取消选择轨道。
- (可选)调用 rewindTo(long microseconds, int mode) 方法实现提取过程中的跳转指定位置。
- 调用 readBuffer(ByteBuffer buf, int offset) 方法,可以实现获取提取出来的 Buffer 数据功能。
- 调用 next() 方法,实现提取下一帧的功能。
- (可选)调用 getMediaStreamId() 方法,可以实现获取当前选择的轨道编号的功能。
- (可选)调用 getFrameTimestamp() 方法,可以实现获取当前轨道内媒体数据帧时间戳的功能。
- (可选)调用 getFrameSize() 方法,可以实现获取当前轨道的媒体数据帧大小的功能。
- (可选)调用 getFrameType() 方法,可以实现获取当前轨道的媒体数据帧 flags 的功能。
- 提取结束后,调用 release() 释放资源。
标题名称:创新互联鸿蒙OS教程:鸿蒙OS视频提取开发指导
网站地址:http://www.jxjierui.cn/article/djohejg.html


咨询
建站咨询
