Android相机准备失败

Chr*_*son 1 video android

我正在尝试为Android设备构建一个简单的录像机,但我的成功有限并且结果好坏参半.它工作一次,但现在,没有改变任何东西,我得到一个"相机不可用"错误,然后"准备失败-2147483648"错误

预览器的构造函数看起来像

   private SurfaceHolder holder_;
   private MediaRecorder r_;
   public CameraPreview(Context context, AttributeSet attrs) {
       super(context, attrs);
       holder_ = getHolder();
       holder_.addCallback(this);
       holder_.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
       r_ = new MediaRecorder();
       r_.setAudioSource(MediaRecorder.AudioSource.MIC);
       r_.setVideoSource(MediaRecorder.VideoSource.CAMERA);
       r_.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
       r_.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
       r_.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
    }    
Run Code Online (Sandbox Code Playgroud)

和我的

surfaceCreated()
Run Code Online (Sandbox Code Playgroud)

方法看起来像

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        r_.setPreviewDisplay(holder_.getSurface());
        r_.setOutputFile("/sdcard/test.mpg");
        if (r_ != null){
            try{
                r_.prepare();
                r_.start();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
     }
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

谢谢,克里斯

Com*_*are 5

我没有使用过视频录制,但是Camera对于静态图片的类,你必须通过明确的方式释放Camera对象release().不这样做意味着相机将无限期地捆绑(可能直到重新启动).

如果你还没有叫release()MediaRecorder,你可能会遇到同样的问题.