3

ウェブカメラとやり取りできるメトロ アプリケーションを開発しています。アプリケーションがバックグラウンドで渡されると、ウェブカメラがオフになるという問題が 1 つだけあります。この問題を解決するために、次のコードを使用しました。

Window.Current.VisibilityChanged += Current_VisibilityChanged;

async void Current_VisibilityChanged(object sender, Windows.UI.Core.VisibilityChangedEventArgs e)
{
    try
    {
        if (e.Visible)
            await mediaCaptureMgr.StartPreviewAsync();
        else
            await mediaCaptureMgr.StopPreviewAsync();
    }
    catch { }
}

デバッグ時には完全に機能しますが、アプリケーションが正常に起動されるとコードは実行されますが、アプリケーションをフォアグラウンドにすると、Web カメラは再びアクティブになりません。どうすればこれを修正できますか?

4

1 に答える 1

0

アプリが実際に中断されることはないため、コードはデバッグモードで実行されます。通常どおり実行すると、アプリは一時停止され、通常のプロセス期間中に再開されます。一時停止から再開に変更しても、VisibilityChangedイベントはトリガーされません。デバッグ中にVisualStudioの[一時停止/再開]ボタンを使用すると、通常の実行時と同じようにコードが失敗するはずです。

コードをApp.xaml.csOnLaunchedのメソッドに移動する必要があります。アプリケーションが終了する可能性があり、メディアキャプチャオブジェクト全体を再初期化する必要があることを考慮する必要があることに注意してください。

于 2012-09-22T13:50:08.610 に答える