これは、ファイル ピッカー サンプルから作成された Windows ユニバーサル アプリに適用されます。そのサンプルの基本コードにはContinuationManager
、Windows Phone プロジェクトのクラスとファイルのOnActivated
メソッド、およびApp.xaml.cs
共通NavigationHelper
クラスが含まれています。
私もソリューションでMediaCapture
andを使用していますが、イベントCaptureElement
を適切に処理できません。Resuming
これが私がすることです:
NavigationHelper_LoadState
カメラ プレビューを開始および停止するために、 メソッドとメソッドを使用しますNavigationHelper_SaveState
(これはLiveCamera.xaml.cs
ファイルの一部です)。
private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
// Start the camera preview
await StartCameraPreview();
}
private async void NavigationHelper_SaveState(object sender, SaveStateEventArgs e)
{
// Stop the camera preview
await StopCameraPreview();
}
これは、アプリ内のページ間を移動するときにうまく機能しますが、サスペンド/再開イベントでカメラを停止/再起動しません。
App.xaml.cs
Resuming イベントを処理する次のメソッドを追加することで、これを修正しました(アプリの再開時SuspensionManager
にメソッドの呼び出しを処理します)。NavigationHelper_LoadState
async void App_Resuming(object sender, object e)
{
await SuspensionManager.RestoreAsync();
}
上記のコードは、Visual Studio をアタッチして実行すると (デバッグ モードとリリース モードの両方で) うまく機能します。中断/再開イベントを受け取ると、カメラ プレビューが停止/再開し、ファイル ピッカーが適切にファイルを返します。
ただし、Visual Studio を使用せずにアプリを実行すると (アプリ リストからアプリを起動するだけ)、サスペンド/再開イベントを受信するとカメラ プレビューが停止/再開しますが、ファイル ピッカーでファイルを選択すると、"Resuming. .." プログレス バーが表示された後、アプリが単にクラッシュします。
ファイルを選択した後、どういうわけかメソッドApp_Resuming
とOnActivated
メソッドが衝突します。各メソッドを入力するときにこれを確認しましたMessageDialog
(Visual Studio で問題を再現できないため): 画像を選択した後、アプリがクラッシュする直前に App_Resuming メッセージが簡単に表示されます (OnActivated メッセージは表示されません)。 . ファイル ピッカーの後にそのメソッドが呼び出されるとは思っていませんでした。なぜなら、VS が接続されたアプリを実行するときにそのメソッドが呼び出されることはないからです。
VS が接続されていないときに、異なる (そして、私が理解していることとは異なる) メソッドが呼び出されるのはなぜですか?