2012-09-22 61 views
3

我正在開發一個城域應用程序,可以讓您與您的攝像頭進行交互。只有一個問題,當應用程序在後臺傳遞時,攝像頭被關閉。要解決這個問題,我用這個代碼:在WinRT中暫停應用程序後恢復CaptureElement

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 { } 
} 

調試時,它完美,但如果應用程序正常啓動時執行的代碼,但一旦我把在前臺應用程序的網絡攝像頭不會被再次激活。我怎樣才能解決這個問題?

回答

0

代碼以調試模式運行,因爲您的應用程序從未真正掛起。正常執行時,應用程序被暫停,然後在正常進程生命週期內恢復。從暫停狀態變爲恢復狀態不會觸發VisibilityChanged事件。如果在調試過程中使用Visual Studio中的掛起/恢復按鈕,則應該看到代碼在正常執行過程中失敗。

您需要將代碼移動到您的OnLaunched方法App.xaml.cs。請注意,您需要考慮可能被終止的應用程序,並需要重新初始化整個媒體捕獲器對象。