使用MediaRecorder录制视频时如何暂停

时间:2014-01-18 07:40:31

标签: android

当使用MediaRecorder录制视频时如何暂停。当我使用这个课时,我发现无法暂停,我搜索谷歌,但找不到好文章。如果你有好的演示,请发送到我的电子邮箱,wo le ge qu a zheme mafan yun!

File dir=new File("/sdcard"+Constant.videoDir+file.separator);
        if(!dir.exists()){
            dir.mkdir();
        }
        file = new File(dir,CameraTool2.getVideoName());
        if (mCamera == null) {
            mCamera = Util.getCameraInstance(flag);
        }
        mCamera.setDisplayOrientation(90);
        mCamera.unlock();

        mediaRecorder = new MediaRecorder();
        mediaRecorder.setCamera(mCamera);
        // int rotation = getPreviewOrientation(this, getCamaraBackId());
         mediaRecorder.setOrientationHint(90);//播放的时候画面旋转
        mediaRecorder.reset();
        // 设置音频录入源
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        // 设置视频图像的录入源
        mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        // 设置录入媒体的输出格式
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        // 设置音频的编码格式
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        // 设置视频的编码格式
        mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
        // 设置视频的采样率,每秒4帧
        mediaRecorder.setVideoFrameRate(4);
        mediaRecorder.setMaxDuration(15000);
        // 设置录制视频文件的输出路径
        mediaRecorder.setOutputFile(file.getAbsolutePath());
        // 设置捕获视频图像的预览界面
        mediaRecorder.setPreviewDisplay(sv_view.getHolder().getSurface());

        mediaRecorder.setOnErrorListener(new OnErrorListener() {
            @Override
            public void onError(MediaRecorder mr, int what, int extra) {
                // 发生错误,停止录制
                if (mediaRecorder != null) {
                    mediaRecorder.stop();
                    mediaRecorder.release();
                    mediaRecorder = null;
                }
                if (mCamera != null) {
                    mCamera.release();
                    mCamera = null;
                }
                isRecording = false;
                btn_VideoStart.setVisibility(View.VISIBLE);
                btn_VideoStop.setVisibility(View.GONE);
                Toast.makeText(Activity_Video.this, "录制出错", 0).show();
            }
        });
        // 准备、开始
        mediaRecorder.prepare();
        mediaRecorder.start();

0 个答案:

没有答案