Android API的MediaRecorder可以关闭声音吗?

Android API的MediaRecorder可以关闭声音吗?,android,mediarecorder,Android,Mediarecorder,我想写一个程序,记录视频,但不是声音 有谁能帮助我在使用MediaRecorder录制视频时不录制声音吗?这确实是可能的。请参阅MediaRecorder中的: 如果未调用此方法,则输出文件将不包含音频曲目 因此,如果您只需要视频,请不要调用此方法。您只需准备mediarecorder的视频要求,如: private boolean prepareMediaRecorder(){ myCamera = getCameraInstance(); mediaRecorder = ne

我想写一个程序,记录视频,但不是声音


有谁能帮助我在使用MediaRecorder录制视频时不录制声音吗?

这确实是可能的。请参阅MediaRecorder中的:

如果未调用此方法,则输出文件将不包含音频曲目


因此,如果您只需要视频,请不要调用此方法。

您只需准备mediarecorder的视频要求,如:

private boolean prepareMediaRecorder(){
    myCamera = getCameraInstance();
    mediaRecorder = new MediaRecorder();        


 // store the quality profile required
    CamcorderProfile profile = CamcorderProfile.get(mCameraId, CamcorderProfile.QUALITY_HIGH);

    myCamera.unlock();
    mediaRecorder.setCamera(myCamera);

    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

    mediaRecorder.setOutputFormat(profile.fileFormat);
    mediaRecorder.setVideoEncoder(profile.videoCodec);
    mediaRecorder.setVideoEncodingBitRate(profile.videoBitRate);
    mediaRecorder.setVideoFrameRate(profile.videoFrameRate);
    mediaRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);
    mediaRecorder.setOutputFile("/sdcard/myvideo.mp4");
    mediaRecorder.setMaxDuration(60000 * 20); // Set max duration 60 *20 sec.
    mediaRecorder.setMaxFileSize(5000000 * 4); // Set max file size 5M * 4

    mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder().getSurface());

    try {
        mediaRecorder.prepare();
    } catch (IllegalStateException e) {
        releaseMediaRecorder();
        return false;
    } catch (IOException e) {
        releaseMediaRecorder();
        return false;
    }
    return true;

}

否如果未调用该函数,它将崩溃并出现错误:IllegalStateexception@daivuk我已经三年多没有测试或研究过这个了,所以有可能API在这段时间内已经改变了。但是,您确定在调用setOutputFormat之前没有调用setAudioEncoder,或者在调用prepare之后没有调用setAudioEncoder吗?文档中指出,执行这两种操作中的任何一种都将抛出非法状态异常。