2013-02-18 109 views
6

在我的MediaRecorder上調用stop()無限期地在Samsung Galaxy Camera上掛起。將這個調用放在一個單獨的線程中也不能解決問題。MediaRecorder.stop()掛在Samsung Galaxy Camera上

Logcat不顯示任何錯誤消息。然而,運行這個相同的應用程序不會導致三星Galaxy Nexus任何問題。

這是stop圍繞我調用的代碼:

View.OnClickListener captureListener = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (isRecording) { 
      // stop recording and release camera 
      mMediaRecorder.stop(); 
      releaseMediaRecorder(); // release the MediaRecorder object 
      mCamera.lock();   // take camera access back from MediaRecorder 
      // inform the user that recording has stopped 
      captureButton.setText("Capture"); 
      isRecording = false; 
     } else { 
      // initialize video camera 
      if (prepareVideoRecorder()) { 
       // Camera is available and unlocked, MediaRecorder is prepared, 
       // now you can start recording 
       mMediaRecorder.start(); 
       // inform the user that recording has started 
       captureButton.setText("Stop"); 
       isRecording = true; 
      } else { 
       // prepare didn't work, release the camera 
       releaseMediaRecorder(); 
       // inform user 
      } 
     } 
    } 
}; 

回答

0

有一件事,我看到的是,對於某些設備MediaRecorder.stop()掛起如果沒有預覽連接(即你叫Camera.stopPreview( )之前或者你可能永遠不會調用startPreview())。