デバイス固有の問題だと思う問題に遭遇しましたが、他の誰かがこの動作を以前に見たことがあるかどうかを確認したいと思いました。以下は、カメラアクティビティでJPEGをキャプチャするために使用しているコードです。
surfaceView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
camera.autoFocus(new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
if(success)
{
Log.d(TAG, "Focusing...successful.");
camera.takePicture(null, null, null, jpegCallback);
}
else
{
Log.d(TAG, "Focusing...failed.");
}
}
});
}
});
このコードはNexus4で完全に機能しますが、今日の午後、Samsung Galaxy S3で試してみたところ、カメラサーバーがクラッシュして次のエラーメッセージが表示されました。
Focusing...successful.
Camera server died!
ICamera died
Error 100
LogCatからわかるように、が呼び出されたときに障害が発生しますcamera.takePicture(...)
(つまり、jpegCallback
が呼び出されることはありません)。後で私はそれを試すためにサムスンギャラクシーノートを持っている友人を手に入れました、そしてそれは彼らの電話でうまく働きます。
オートフォーカスコールバックの中から写真を撮るべきではありませんか?これはそれを置くのに適切な場所のようです。ここでの洞察は素晴らしいでしょう!