Telegram中语音
class: MediaController
录音
recordQueue 中做初始化
- 写入文件
- 打开录音
- 异常处理:
如果正常开始的处理
recordQueue中处理内容 runnable
- buffer内存缓存中中获取处理的buffer
- 将buffer给于FileEncodingQueue中来处理,buffer和fileBuffer进行拼接和处理,对于需要处理的内容,直接处理
- 处理结束后,交给recordQueue中,添加废弃的buffer
- 继续在recordQueue中执行上面的runnable过程
如果没有成功录制,归还buffer到内存
并且停止录制即可,
播放录音
- 播放录音
- 暂停播放
- 再次播放
- seekTo
播放opus录音
- 检查文件的有效性
- 创建AudioTrack,并且设置相关监听
- AudioTrack开始播放
FileDecodingQueue中,做操作
- 检查是否要seekOpusFile,如果需要,seekOpusFile
- playerBuffer初始化
- 设置没有解码完成
- PlayerQueue来做处理
- PlayerQueue中第一次时,会调用FileDecodingQueue