小编Meg*_*iar的帖子

MediaRecorder给出了启动错误或IllegalStateException

我正在使用MediaRecorder通过Android的Camera API录制视频.我遇到了一个非常奇怪的问题.

    private void startRecordingVideo() {
    recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
    File file = getAlbumDir();
    recorder.setOutputFile(file.getAbsolutePath());
    recorder.setMaxDuration(50000);
    recorder.setMaxFileSize(5000000);
    recorder.setPreviewDisplay(CameraBridgeViewBase.surfaceHolder.getSurface());
    try {
        recorder.prepare();
        recorder.start();
    } catch (IllegalStateException | IOException e) {
        e.printStackTrace();
    }     
}
Run Code Online (Sandbox Code Playgroud)

现在这给了我MediaRecorder:启动失败:-19错误.我检查了这个这个链接说要删除,mediaRecorder.setVideoSize(sView.getWidth(), sView.getHeight());但我没有使用setVideoSize(sView.getWidth(), sView.getHeight()).通过尝试和错误,我发现如果我删除编码器recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);, recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);应用程序不会崩溃,但会给出新的异常:

03-23 16:50:06.213 28226-28226/com.scenera.android.surveillance E/MediaRecorder: audio source is set, but audio encoder is not set
Run Code Online (Sandbox Code Playgroud)

我不明白我在做错了什么.任何帮助都会得到满足.提前致谢.

android mediarecorder camera-api

7
推荐指数
1
解决办法
823
查看次数

标签 统计

android ×1

camera-api ×1

mediarecorder ×1