API を使用しPhotoCamera
て QR コード スキャン ページを作成しています (ZXing を使用)。ただし、このページはアプリのごく一部であるため、常に表示されるわけではありません。したがって、アプリケーションは、このページと共通のコントロールを持つ他のページの間を移動します。
問題は、スキャン後、アプリケーション全体が実際の理由もなく 60fps ではなく 30fps に遅くなることです。カメラがまだバックグラウンドで実行されていると思われ、フレーム同期によりアプリが 30 fps にロックされます。これが私の問題です。APIを使用するページを適切に破棄するにはどうすればよいですか?PhotoCamera
私のXAML:
<Grid Background="Black">
<ProgressBar x:Name="PBar" IsIndeterminate="True" VerticalAlignment="Center" />
<Rectangle x:Name="ScanRect">
<Rectangle.Fill>
<VideoBrush x:Name="ScanVideoBrush" />
</Rectangle.Fill>
</Rectangle>
</Grid>
スキャンプロセスを停止する私のC#:
private void StopScan() {
if (analysisTimer != null) {
analysisTimer.Stop();
analysisTimer = null;
}
if (focusTimer != null) {
focusTimer.Stop();
focusTimer = null;
}
if (camera != null) {
camera.Dispose();
camera.Initialized -= OnCameraInitialized;
camera = null;
}
// Following two lines are a try to dispose stuff
// as much as possible, but the app still lags
// sometimes after a scan...
ScanVideoBrush.SetSource(new MediaElement());
ScanRect.Fill = new SolidColorBrush(Colors.Black);
}
注: Lumia 920 でアプリをテストしています。