2010-11-24 83 views
0

因此,我從這個小小的文字開始。我想嘗試製作一個可以在後臺運行時拍照的應用程序。首先,我想要一個曾經打開的應用程序只需每X秒拍攝一張照片。在重現下面的步驟中顯示的類和方法後,我遇到了一些問題。Android相機應用程序,預覽崩潰

http://itp.nyu.edu/~sve204/mobilemedia_spring10/androidCamera101.pdf

對於初學者來說它似乎的onCreate函數設置應用程序的所有對象,但如果你試圖通過比的onClick任何其他方法來拍照(IE直接調用它)的應用程序實際上不是招尚未設置畫布或預覽。

我的第一個問題: 是否有任何有條件的方法可以設置,它將等待創建所有「onCreate」對象並調用它們的相關方法並完成?在自動開始拍照之前,如何等待應用程序完成我的表面並啓動相機預覽?

我的第二個問題: 我需要預覽才能拍照。無論如何,仍然在拍照時將這個應用程序推到後面(IE在後臺運行)?正在繪製一個畫布的要求? (根據我所知道的AFAIK,當您放置另一個屏幕或應用程序暫停當前應用程序並關閉您演示該預覽的表面/畫布時,您需要有一個水平線開始預覽。如果我的理解在所有這一切都是正確的,我將能夠做的最好的是製作1x1像素畫布,由於應用程序處於前景,仍然會佔用屏幕。

我的第三個問題:有沒有辦法解決這個問題?你是否仍然可以用某種方式使用相機,而不需要預覽畫面?

回答

0
  1. 您必須實現SurfaceHolder.Callback,等待它的surfaceCreated()被調用。

    之後,你可以做所有MediaRecorder準備(setPreviewDisplay,setAudio,setVideo,prepare())。

  2. 您可以將SurfaceView與另一個視圖疊加並隱藏它。