仅在相机解锁()以进行录制时才能在录制视频时拍摄照片

时间:2015-06-24 09:30:41

标签: android android-activity video camera

我正在开发一款可以录制视频,拍照并在录制视频期间可以拍照的应用程序。对于简单录制视频和拍照我没有问题。问题是,当我开始录制视频时,我尝试camera.takePicture(null, null, jpegCallback);在某些设备上,它永远不会转到public void onPictureTaken(byte[] data, Camera camera){}上的PictureCallback jpegCallback。我已经测试了很多小时,stackoverflow是我解决问题的最后希望。

VideoRecordActivity surfaceChanged()代码的早期代码打开并设置了相机:

  camera = Camera.open();

  Camera.Parameters p = camera.getParameters();
  p.setPreviewSize(camcorderProfile.videoFrameWidth, camcorderProfile.videoFrameHeight);
  p.setPreviewFrameRate(camcorderProfile.videoFrameRate);

  camera.setParameters(p);
  camera.setPreviewDisplay(holder);
  camera.startPreview();

之后我准备MediaRecorder就像这样(我在这里解锁相机,因为记录完成后我用camera.reconnect()重新连接相机,然后再次拨打prepareRecorder()我可以开始录制下一个视频了:

  private void prepareRecorder() {
    recorder = new MediaRecorder();

    camera.unlock();
    recorder.setCamera(camera);

    recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
    recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
    recorder.setProfile(camcorderProfile);

    recorder.setPreviewDisplay(holder.getSurface());
  }

如果在camera.unlock()之前未调用recorder.setCamera(camera);,我无法录制视频。但是在某些设备上,如果我在录制视频时尝试takePicture(),则在camera.unlock()之后,它永远不会调用覆盖的public void onPictureTaken(byte[] data, Camera camera)。如果我只是评论camera.unlock()并且从不开始录制视频,只是在可见的takePhoto按钮上选项卡,它正常工作并照常拍照。 在启动视频记录并解锁()相机后,为什么我无法在某些设备上拍摄 的任何想法?

我在Android 4.4.2上测试了这个 - 三星Galaxy Tab 4 10“和7”。在7“我可以在视频录制期间拍照,但在10”它不能。有任何想法吗?此致,弗拉德。

0 个答案:

没有答案