Android 将视频录制到 SDCard

发布于 2024-09-06 09:03:38 字数 1402 浏览 4 评论 0原文

我正在尝试将视频录制到 SD 卡中。 但每次我单击按钮进行录制时,它都会显示“意外停止”错误。 不太确定哪里出了问题。我不确定 setOutputFile 的路径是否是我应该指示的方式。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.camera);

    cam = new cameraview(this);
    ((FrameLayout) findViewById(R.id.preview)).addView(cam);
    // Create A Preview View

    buttonClick = (Button) findViewById(R.id.buttonClick);
    buttonClick.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if(toogleButtonFlag )
            {
                startRecording();
                toogleButtonFlag = false;
            }
            else{
                stopRecording();
                toogleButtonFlag = true;
            }

        }
    });
}

public void startRecording(){
    recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
     recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
     recorder.setOutputFile("/sdcard/.3pg");
     try{
     recorder.prepare();
     }
     catch(IOException e)
     {
         e.printStackTrace();
         recorder.reset();   
         recorder.release();
     }
     recorder.start();   // Recording is now started
}

public void stopRecording(){
     recorder.stop();
     recorder.reset();   
     recorder.release(); 
}

I am trying to record a video into sdCard.
But everytime I click on the Button to record, it shows "stopped unexpectedly" error.
Not too sure where went wrong. I am not sure if setOutputFile's path is how I should indicate.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.camera);

    cam = new cameraview(this);
    ((FrameLayout) findViewById(R.id.preview)).addView(cam);
    // Create A Preview View

    buttonClick = (Button) findViewById(R.id.buttonClick);
    buttonClick.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if(toogleButtonFlag )
            {
                startRecording();
                toogleButtonFlag = false;
            }
            else{
                stopRecording();
                toogleButtonFlag = true;
            }

        }
    });
}

public void startRecording(){
    recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
     recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
     recorder.setOutputFile("/sdcard/.3pg");
     try{
     recorder.prepare();
     }
     catch(IOException e)
     {
         e.printStackTrace();
         recorder.reset();   
         recorder.release();
     }
     recorder.start();   // Recording is now started
}

public void stopRecording(){
     recorder.stop();
     recorder.reset();   
     recorder.release(); 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

逆流 2024-09-13 09:03:38
  1. 确保您拥有 WRITE_EXTERNAL_STORAGE 权限

  2. 您的输出文件假定 SD 卡位于 /sdcard,这在某些设备和 Android 版本上不正确 - 请使用 Environment.getExternalStorageDirectory()

  3. 您的输出文件缺少文件名

  4. 您的输出文件的扩展名拼写错误

  1. Make sure you have the WRITE_EXTERNAL_STORAGE permission

  2. Your output file assumes the SD card is at /sdcard, which is incorrect on some devices and Android versions -- please use Environment.getExternalStorageDirectory()

  3. Your output file lacks a file name

  4. Your output file has a mis-spelled extension

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文