バーコードを処理するために自動フォーカス機能を使用して基本カメラアプリを作成しようとしています。カメラの焦点が合ったように戻ると、空白の画面が表示され、そこにハングアップします。例外はスローされません。私はCaptureImage()メソッドに問題を追跡しましたが、呼び出されているのがわかりますが、OnCaptureImageAvailableメソッドは呼び出されません。これは、OnNavigatedFromメソッドでOnCaptureImageAvailableをアンフックしていない場合でも発生します。WP7 Camera CaptureImageは、写真の撮影中にバックを押したときに戻らない
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
_camera.AutoFocusCompleted -= OnCameraAutoFocusCompleted;
_camera.CaptureImageAvailable -= OnCaptureImageAvailable;
_camera.Initialized -= OnCameraInitialized;
_camera.Dispose();
_camera = null;
}
private void InitializeCamera()
{
_camera = new PhotoCamera();
_camera.Initialized += OnCameraInitialized;
viewfinderBrush.SetSource(_camera);
}
void OnCameraInitialized(object sender, EventArgs e)
{
_camera.Initialized -= OnCameraInitialized;
_camera.AutoFocusCompleted += OnCameraAutoFocusCompleted;
_camera.CaptureImageAvailable += OnCaptureImageAvailable;
_camera.FlashMode = FlashMode.Off;
_camera.Focus();
}
private void OnCameraAutoFocusCompleted(object sender, EventArgs e)
{
_camera.CaptureImage();
}
private void OnCaptureImageAvailable(object sender, ContentReadyEventArgs e)
{
if (_camera != null && e.ImageStream != null)
ScanBarcode(e);
}
OnNavigateFromで_camera.Dispose()を削除すると、呼び出しページに戻りますが、このページを再び開くことはできません。カメラが初期化される準備ができていないようです。問題を説明するためにプロジェクトをここにアップロードしました: 'https:// github.com/cobusbernard/CameraIssue /' –