現在のアプリケーションでは、カメラ オブジェクトのインスタンスを保持するクラスを取得し、次のことを試みています。
1) 指定された時間、たとえば何も待機しません (これは TimerTask を介して行われます) 2) autoFocus を介してフォーカスをリクエストします 3) autoFocus コールバックで、OneShotPreviewCallback をリクエストします 4) プレビュー コールバックで、画像を保存します 5) 繰り返します
最初のオートフォーカスの前にホワイトバランスが正常に機能している間、最初のフォーカスが行われた後に停止します。もちろん、API を調べたところ、autoFocus の説明に興味深い記述が 1 つあります。
ただし、オート フォーカス ルーチンは、フォーカス中に自動露出とオート ホワイト バランスを一時的に停止する場合があります。
しかし、一時的に停止するのではなく、永続的に停止しているようです。面白いことに、その後の autoFocus の呼び出しで、カメラはホワイトニングを再度調整しようとしますが、正しい値はほとんど 2 番目または 3 番目の autoFocus でのみです。
また、コードでホワイト バランスを設定しようとしましたが、何も変わりませんでした。
setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
他の誰かがこの問題を知っていますか、それとも私はいくつかの点を見逃していますか? autoFocus を恒久的に呼び出してホワイト バランスを強制することができることはわかっていますが、それは最適な方法ではないようです。
PS: Android 4.0.3 を搭載した Samsung Galaxy S2 でテストしています。