MediaCapture
クラス( )を使用してWebカメラフィードを表示するWindows 8アプリ(C#)Windows.Media.Capture
で、アプリが失われたときにプレビューを再開してから、フォーカスを取り戻そうとしています(たとえば、画面の左上隅をクリックして別のアプリに移動します)アプリをクリックしてから、もう一度クリックしてアプリに戻ります)。
今プレビューを再開しようとしている方法は次のとおりです。
Application.Current.Resuming += (sender, o) => StartVideo(video);
Application.Current.Suspending += (sender, args) => StopVideo();
internal async void StartVideo(CaptureElement e)
{
try
{
this.stream = new MediaCapture();
await this.stream.InitializeAsync();
e.Source = this.stream;
await this.stream.StartPreviewAsync();
}
catch
{
new MessageDialog("Unable to start the video capture.").ShowAsync();
}
}
internal async void StopVideo()
{
try
{
await stream.StopPreviewAsync();
}
catch { }
}
ただし、上記の例では、Resuming
andSuspending
イベントは発生しないようです。これはアプリを「一時停止」していませんか?もしそうなら、それは何ですか/私はどのようなイベントに注意を払うべきですか?
または、長時間実行される「プレビュー」を使用してWebカメラを表示する代わりに、いずれかのthis.stream.StartRecord...
方法を使用する必要がありますか?
編集: Visual Studioの[一時停止/再開]ボタン([デバッグの場所]ツールバー)を使用してイベントを手動で発生させると、機能は希望どおりに機能します(アプリが再開されるとビデオが再開します)。