简体   繁体   English

如何在Android中以编程方式捕获没有音频的视频?

[英]how to capture video without audio in android programmatically?

I'm just invoking video intent to capture. 我只是在调用视频意图进行捕获。

` `

private void dispatchTakeVideoIntent() {
       Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
        }
}

` `

like this. 像这样。 But I need to capture it without Audio.I checked this below link but couldn't found how to resolve Android record video without audio 但是我需要在没有音频的情况下捕获它。我检查了以下链接,但找不到如何解析没有音频的Android录制视频

Just use the MediaRecorder class to record the video. 只需使用MediaRecorder类来录制视频。 With media recorder, while setting up the audio and video source just don't set the audio source there. 对于媒体记录器,在设置音频和视频源时,只是不要在此处设置音频源。 like this. 像这样。

public class MuteVideoRecorderView extends SurfaceView implements
        SurfaceHolder.Callback {

    private SurfaceHolder mHolder;

    private Camera mCamera;
    private MediaRecorder mMediaRecorder;

    public CamcorderView(Context context, AttributeSet attrs) {
        super(context, attrs);

        mHolder = getHolder();
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        mHolder.addCallback(this);

        mCamera = Camera.open();
        mRecorder = new MediaRecorder();

    }

    public void stop() {
        mRecorder.stop();
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {

        mCamera.unlock();
        mMediaRecorder.setCamera(mCamera);

        // Here we will not set mRecorder.setAudio(..);
        mMediaRecorder.setVideoSize(int, int);
        mMediaRecorder.setVideoFrameRate(int);

        mMediaRecorder.setPreviewDisplay(mHolder.getSurface());


        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
            mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);

        // change for desired output folder
        mMediaRecorder.setOutputFile("/mnt/sdcard/test/work");

        try {
            mMediaRecorder.prepare();
        } catch (IllegalStateException e) {
            Log.e("IllegalStateException", e.toString());
        } catch (IOException e) {
            Log.e("IOException", e.toString());
        }
        mMediaRecorder.start();
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM