這是一個自製簡易相機的範例練習,與API Demo 裡的Preview 程式不同,本程式以Activity為基底,在Layout 配置了三個按鈕,分別處理「開啟相機預覽」、「關閉相機」、「拍照」的工作,當按下「拍照」按鈕,程式將畫面擷取下來後,儲存於「SD」記憶卡暫存檔,最後將拍照下來的圖檔顯示於Activity 裡的ImageView 中。

將此專案程式升級至Android 1.5 SDK環境之後
雖專案設定為1.1,但在執行時會發現一個現象
即按下「開啟相機預覽」,再按下「關閉預覽」
若再一次「開啟相機預覽」則會發生以下Exception:

Connect E from ICameraClient 0x....
new client (0x...) sttempting to connect - rejected

輸出Exception的原因為:"Out of memory"

請修改本程式,可避免此問題發生:

/* 自訂初始相機函數 */
private void initCamera()
{
  if(!bIfPreview)
    {
      /* 若相機非在預覽模式,則開啟相機 */
      try
      {
        /*
        * The Heap 是應用程式在手機裡執行所配置的空間
        * 當超過預設的16 MB(每一個應用程式)時就會導致 "Out of memory"的錯誤
        * 目前看來是Cupcake(AVD 1.5)才會發生
        * Connect E from ICameraClient 0x....
        * new client (0x...) sttempting to connect - rejected
        * */
        mCamera01 = Camera.open();
      }
      catch(Exception e)
      {
        Log.e(TAG, e.getMessage());
      }
    }
}

創作者介紹
創作者 androidsdk 的頭像
androidsdk

Google Android SDK 開發範例大全2

androidsdk 發表在 痞客邦 留言(5) 人氣()


留言列表 (5)

發表留言
  • 龍蝦
  • camera

    請問一下,這個鏡頭是使用實機還是接上電腦的webcam??
    我看android 官網好像有說 emulator 不支援video的擷取
    (原文是No support for camera/video capture (input).)
    所以這個範例和下個範例是用實機還是webcam呢??
    請問有沒有辦法克服嗎?? 如果要裝webcam 的話 步驟大概是怎樣~?
  • 您好~
    此範例圖片是使用實機拍攝的~

    androidsdk 於 2010/04/15 10:19 回覆

  • 悄悄話
  • cg49914
  • 請問一下
    一樣的相機程式(SDK1.5)
    在韌體版本為1.5的手機上是可以跑的
    但是手機在更新成2.1版之後
    開啟相機預覽都會出現錯誤
    (com.android.cameratest未正常關閉)
    不管開了幾次或重安裝都一樣
    請問是哪裡出錯了嗎?
    謝謝
  • 訪客
  • 請問一下 這個範例 我在2.3版上 連續拍照2x次之後就會當掉
    請問是不是哪裡有啥問題?
  • 讀者
  • 老師您好請問看完您的書,拍照後逆時針反轉90度,該如何補正