關於部落格
  • 78252

    累積人氣

  • 2

    今日人氣

    0

    追蹤人氣

[Android] Camcorder 的 setCameraParameters() 函式

由於Camcorder相對於Camera多了使用一個重要類別:MediaRecorder (這是Android system中用來錄音錄影的class api)。

他有幾個重要的life cycle...
1. MediaRecorder.prepare() (在initializeRecorder()中)
在此前設定好各種參數,不只包含Camera module的,也包含MediaRecorder本身的(如影片大小、長度、encorder....)。
2. MediaRecorder.start() (在startRecording()中)
開始錄影。
3. MediaRecorder.stop() (在stopRecordering()中)
停止錄影。
4. MediaRecorder.reset()及MediaRecorder.release()
停止錄影後,以及離開Camcorder ap時。

因此,在prepare() 前就必須把Camera的參數設定好,
那使用者若有改變如white balance等features的設定時,
如果直接使用setCameraParameters()的話,即會得到"set parameter failed!"的exception。

正確的使用方式必須先將已initialized的MediaRecorder先release後,
然後使用Camera.lock(),再setCameraParameters(),然後設定完參數再Camera.unlock(),
最後再重新初始化一個新的MediaRecorder(即再call initializeRecorder())。
這才是正確的使用流程,這裡請特別注意!!

相關的api請見:
MediaRecorder   http://developer.android.com/reference/android/media/MediaRecorder.html
Camera(內有lock()及unlock()) http://developer.android.com/reference/android/hardware/Camera.html
相簿設定
標籤設定
相簿狀態