Android中MediaRecorder.stop()函数的运行时异常

时间:2018-09-18 12:02:50

标签: android mediarecorder android-mediaprojection

我正在创建一个屏幕捕获应用程序。使用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)

1 个答案:

答案 0 :(得分:0)

  

问题出在模拟器上。它没有音频和视频源。

Look android.developer doc

  

如果在调用stop()时未收到有效的音频/视频数据,则有意向应用程序抛出RuntimeException。如果在start()之后立即调用stop(),则会发生这种情况。

解决方案

  

mediaRecorder.stop()函数放入 try-catch