Android MediaRecorder,启动失败:-19

Android MediaRecorder,启动失败:-19,android,google-glass,video-recording,google-gdk,Android,Google Glass,Video Recording,Google Gdk,有人成功地在玻璃上使用MediaRecorder录制了视频吗 这是我用来准备录音机的代码。我不断得到错误-19 recorder = new MediaRecorder(); recorder.setOutputFile(videoFile); recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); recorder.setAudioSource(MediaRecorder.AudioSource

有人成功地在玻璃上使用MediaRecorder录制了视频吗

这是我用来准备录音机的代码。我不断得到错误-19

    recorder = new MediaRecorder();

    recorder.setOutputFile(videoFile);

    recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
    recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);

    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

    recorder.setVideoFrameRate(15);
    recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);

    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
多谢各位

更新: 这似乎是一个GDK错误。我已经报告了,它被接受了。如果您有相同的问题,只需启动错误报告,以随时了解情况:


您何时准备记录器,启动应用程序时是否会发生这种情况?如果是的话,你是用语音触发器启动的吗


如果这两件事都是真的,这可能是一个例子。你能在该线程中尝试解决方法(指数退避)并看看它是否有效吗?

经过许多挫折和反复,我很高兴地报告,在Glass XE12上使用MediaRecorder是可能的。以下代码适用于运行XE12的Glass版本1:

    mMediaRecorder = new MediaRecorder();
    mMediaRecorder.setCamera(mCamera);
    mMediaRecorder.setPreviewDisplay(preview.getHolder().getSurface());
    mCamera.unlock();
    // Step 2: Set sources

    mMediaRecorder.setOnErrorListener(new android.media.MediaRecorder.OnErrorListener() {
        public void onError(MediaRecorder mediarecorder1, int k, int i1)
        {
            Log.e(TAG,String.format("Media Recorder error: k=%d, i1=%d", k, i1));
        }

    });
    mMediaRecorder.setVideoSource(0);
    mMediaRecorder.setAudioSource(0);
    mMediaRecorder.setOutputFormat(2);
    mMediaRecorder.setVideoEncoder(2);
    mMediaRecorder.setVideoEncodingBitRate(0x4c4b40);
    mMediaRecorder.setVideoFrameRate(30);
    mMediaRecorder.setVideoSize(1280, 720);
    mMediaRecorder.setAudioChannels(2);
    mMediaRecorder.setAudioEncoder(3);
    mMediaRecorder.setAudioEncodingBitRate(0x17700);
    mMediaRecorder.setAudioSamplingRate(44100);
    mMediaRecorder.setMaxDuration(0);
    mMediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString());
    mMediaRecorder.setMaxDuration(-1);

    // Step 5: Set the preview output
    // Step 6: Prepare configured MediaRecorder
    try {
        mMediaRecorder.prepare();
        mMediaRecorder.start();
    } catch (IllegalStateException e) {
        Log.d(TAG, "IllegalStateException preparing MediaRecorder: " + e.getMessage());
        releaseMediaRecorder();
        return false;
    } catch (IOException e) {
        Log.d(TAG, "IOException preparing MediaRecorder: " + e.getMessage());
        releaseMediaRecorder();
        return false;
    } catch (Exception e) {
        Log.d(TAG, "Unknown exception preparing MediaRecorder: " + e.getMessage());
        releaseMediaRecorder();
        return false;
    }

要在玻璃上开始视频捕获,似乎必须完全停止视频预览。如果您使用的是预览相机,在使用MediaRecorder进行任何操作之前,只需运行:

try {
    mCamera.setPreviewDisplay(null);
} catch (java.io.IOException ioe) {
    Log.d(TAG, "IOException nullifying preview display: " + ioe.getMessage());
}
mCamera.stopPreview();
mCamera.unlock();

更多信息请点击此处:

不幸的是,情况并非如此。我可以成功启动该应用程序(这是一项活动,而不是一张实时卡),并且可以在表面上看到相机的预览。当我尝试使用MediaRecorder录制视频时,问题就出现了。谢谢你的回复!谢谢你,奥利弗!我把玻璃换成了第二版,我一拿回就会测试。不幸的是,奥利弗,它对我不起作用。无论如何,谢谢你。