SampleSource
来源:互联网 发布:端口重定向工具 编辑:程序博客网 时间:2024/05/09 05:46
SampleSource 可能会导出一个或多个tacks。通过SampleSourceReader.getFormat(int) 可以查询每个track的媒体格式;通过SampleSoureReader.getTraceCount() 可以获得track 的数量。
它只有一个成员函数:
public SampleSourceReader register();
处理samples的对象应该调用这个函数,用这个函数返回SampleSourceReader 访问这个source。
SampleSource这个接口有一个子接口,是SampleSourceReader 。
这个接口的主要方法有:
public boolean prepare(long positionUs);
准备Source。这个准备操作可能会从数据源请求数据(比如确定可用的tracks 和 formats)。如果没有足够的数据可用,这个接口返回false,而不是阻塞。这个方法可以重复调用,直到返回成功。 参数表示播放器当前播放的位置。public int getTrackCount();
返回这个source导出的tracks数。public MediaFormat getFormat(int track);
返回指定track的媒体格式。public void enable (int track, long positionUs)
Enable 指定的track。这行这一步操作后才能调用readData(int, long, MediaFormatHolder, SampleHolder) 方法读取track的格式个样本数据。这个方法只能在source准备完成, 并且指定的track已被禁用后调用public boolean continueBuffering(int track, long positionUs);
这个方法告诉source,应该为指定的track继续缓存数据。public int readData(int track, long positionUs, MediaFormatHolder formatHolder,
SampleHolder sampleHolder);
尝试从这个Source中读取一个样本数据或新的媒体格式。这个方法只能在指定的track的状态处于enabled状态时调用。注意,在多个tracks同时处于enabled状态下时,如果将要读取的下一片数据不属于这个方法的参数指定的track而是属于其他track那么这个方法将会返回NOTHING_READpublic void seekToUs(long positionUs);
跳转到指定的位置。至少有一个track可用时才能调用这个方法。public long getBufferedPositionUs();
获取已缓冲时长。至少有一个track可用时才能调用这个方法。public void disable(int track);
禁用指定的trackpublic void release();
- SampleSource
- 省市级联
- 1052. Linked List Sorting (25)
- C++ 中的operator关键字
- 数据处理(蛋白质序列)
- 2016 mingw 5.3.0 + Qt 5.7.0 + opencv 3 under windows7
- SampleSource
- 从零开始自动部署Django项目(三):使用uWSGI emperor管理进程
- 内存对齐规则
- 最短路(建图)—— Meeting (HDU 5521)
- KVM学习2--使用KVM API创建并运行虚拟机
- rfc5766-turn-server NAT
- 转--解决Spring中singleton的Bean依赖于prototype的Bean的问题
- JavaFX监听窗口关闭事件
- 解决maven工程无法创建src/main/java包名的方法