首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaRecorder,开始失败:-19

MediaRecorder,开始失败:-19
EN

Stack Overflow用户
提问于 2013-12-19 01:35:04
回答 3查看 3.7K关注 0票数 3

是否有人成功地用MediaRecorder在玻璃上录制了一段视频?

这是我用来准备记录器的代码。我不断犯错误-19。

代码语言:javascript
复制
    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错误。我已经报告了这件事并被接受了。如果您有相同的问题,只需在bug报告中添加以保持消息:

https://code.google.com/p/google-glass-api/issues/detail?id=360

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-22 08:10:57

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

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

更多信息在这里:https://code.google.com/p/google-glass-api/issues/detail?id=360#c6

票数 2
EN

Stack Overflow用户

发布于 2014-01-15 05:49:17

在经历了许多挫折和反复之后,我很高兴地报告,在GlassXE12上使用MediaRecorder是可能的。在运行XE12的1上,下面的代码适用于我:

代码语言:javascript
复制
    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;
    }
票数 1
EN

Stack Overflow用户

发布于 2013-12-20 02:22:47

您什么时候准备录音机,启动应用程序时会发生什么情况吗?如果是的话,你会用语音触发器启动它吗?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20671932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档