课程名称:即时通讯项目里面的语音处理-基础实现篇
课程章节:2-5 Android-录音过程多线程处理
主讲老师:Piasy
课程内容:
今天学习内容有:
- 涉及哪些多线程问题
- 错误提醒的逻辑
- 结束录音的逻辑
课程收获:
涉及哪些多线程问题
- 防止阻塞线程,提高APP的响应能力
· 主线程16ms执行限制,不能执行I/O等耗时操作
· 模拟器:文件模式开启录音要20到30ms,停止录音耗时30到50ms
· 字节流模式下需要循环读写数据,只能放在后台线程
- 主线程和后台线程状态同步
· 后台线程在循环中读取状态值,主线程改变状态值让后台线程退出
· 不需要synchronized互斥访问
· 需要volatile保证主线程的修改后台线程可见
- 录音JNI函数不能多线程调用,避免闪退
· MediaRecorder: prepare(),start(),stop(),reset(),release()等
` AudioRecorder:startRecording(),read(),stop(),release()等
其他:
这里涉及的多线程的知识与kotlin中的不太一样,过几天打卡完课程以后会整理一下项目代码,用kotlin实现。