发生情况:
- 我们在调用MediaRecorder的时候,发现如果添加了麦克风的流,第一次录制屏幕没问题,再次打开就会导致录像失败,报错:MediaRecorder: stop failed: -38 。
发生原因:
- 主要是我们占用了麦克风资源,我们结束录制屏幕的时候没有释放麦克风资源。一般我们就调用以下3条。
-
mediaRecorder.stop();mediaRecorder.reset();virtualDisplay.release();
直接stop会导致释放麦克风资源失败,因为麦克风还在使用中。
解决办法:
- 我们要先调用 mediaRecorder.pause();暂停后,在继续stop, reset, release