看了一大堆的音视频理论知识,还是得实操一下。
这次就来实现一个播放视频的Demo吧。
使用到如下几个类:
- MediaExtractor
extractor意思就是提取器,功能就是提取我们所需的流(音频/视频),选取指定的track。
常用Api | 功能介绍 |
---|---|
setDataSource(String path) | 设置数据的来源(文件路径or网络流的url地址) |
int getTrackCount() | 获取数据源中的轨道数量(音频轨道、视频轨道) |
MediaFormat getTrackFormat(int index) | 获取某个轨道的格式 |
native void selectTrack() | 选定指定的轨道,多次选择只有一次生效 |
native int readSampleData(@NonNull ByteBuffer byteBuf, int offset); | 检索当前编码样本并且把它存储到给定起始位置的字节缓冲区 |
public native long getSampleTime() | 返回当前样本的描述时间(微秒) |
public native boolean advance() | 推进到下一个样本& |