我正在创建一个屏幕捕获应用程序。使用MediaRecorder和MediaProjection API。
在停止记录器时获取运行时异常
这是停止屏幕捕获的代码
private void stop_recorder() {
if (virtualDisplay == null) {
return;
}
virtualDisplay.release();
if (mediaProjection != null) {
mediaProjection.unregisterCallback(projectionCallback);
mediaProjection.stop();
mediaProjection = null;
}
if (recorder != null) {
recorder.stop();
recorder.reset();
}
}
发生异常是
E/MediaRecorder: stop failed: -1007 java.lang.RuntimeException: stop failed. at android.media.MediaRecorder.stop(Native Method)
答案 0 :(得分:0)
问题出在模拟器上。它没有音频和视频源。
如果在调用stop()时未收到有效的音频/视频数据,则有意向应用程序抛出RuntimeException。如果在start()之后立即调用stop(),则会发生这种情况。
解决方案
将 mediaRecorder.stop()函数放入 try-catch 块