6

Android4.0.xでのプレビューコールバックについて質問があります。カメラをセットアップし、カメラ画像イベントを表示するサーフェスを作成しますon previewCallback。すべてが正常に動作します。

しかし、Android 4.0.xでは、もonPreviewCallback呼び出されませんonPreviewCallbackWithBuffer。この問題の回避策はありますか?

スクリーンショットを撮りたいのですtakePicture()が、ライブ画像が短時間フリーズするので、-wayは使いたくありません。

4

3 に答える 3

7

surfaceCreated だけでなく、surfaceChanged メソッドで setPreviewCallback を呼び出す必要があります。

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    if (mHolder.getSurface() == null){
      return;
    }

    try {
        mCamera.stopPreview();
    } catch (Exception e){
      // ignore: tried to stop a non-existent preview
    }

    try {
        mCamera.setPreviewCallback(this);
        mCamera.setPreviewDisplay(mHolder);
        mCamera.startPreview();

    } catch (Exception e){
        Log.d(TAG, "Error starting camera preview: " + e.getMessage());
    }
}
于 2013-03-12T10:13:33.520 に答える