2015-05-09 48 views
1

我在我的應用程序中使用了MediaCapture API。比方說,我開始錄製和預覽。在錄製過程中,我按了開始鍵,然後通過長按Back鍵並選擇我的應用程序(任務交換)快速返回到應用程序。結果是預覽被凍結或者在Emulator或8.1 WP硬件上運行。我沒有找到更好的事件來註冊開始鍵。我明白這一點.Resume可以在您的APP停用時處理恢復。但在這裏我的意思是我在2〜3秒內從開始切換回來,並且不會調用Resume調用。我認爲當按下開始鍵作爲解決方法時,我可以禁用預覽。然後,當應用程序回到前臺時,用戶可以重新開始錄製。但是,兩種情況下我都找不到合適的事件。當然,如果在APP被換回時預覽沒有被凍結,我不需要做任何事情。現在看起來,預覽在從「開始」切換回來之後不起作用。在Windows Phone 8.1中按下開始按鈕時會引發什麼事件RT

下面是我使用

_mediaCapture.StartRecordToStorageFileAsync(_profile, _recordStorageFile); 

capturePreview.Source = App._mediaCapture; 

_mediaCapture.StartPreviewAsync(); 

回答

1

你在這裏遇到的問題與只要調試器被連接的事實有關,暫停/恢復將不會像你的應用程序自行運行時那樣工作。

在這裏看到:https://msdn.microsoft.com/en-us/library/windows/apps/hh974425.aspx

嘗試你現在正在做同樣的事情,除了按在VS暫停按鈕,一旦你的應用程序是在後臺。要恢復,請按恢復按鈕。或者,在沒有附加調試器的情況下嘗試相同的操作。 只要您正確處理暫停/恢復事件,MediaCapture生命週期不會成爲問題。

要了解更多信息,請查看Microsoft github存儲庫上的UniversalCameraSample:http://aka.ms/2015builduniversalcamerasample。它針對Windows 10,但仍然適用於8.1。

+0

我拔掉USB電纜,它仍然表現相同。我有代碼處理掛起事件和返回鍵。當我按Home鍵時不會調用這些鍵。 – thsieh

+0

我的意思是你應該從應用程序列表中啓動你的應用程序,而不是從Visual Studio啓動。然後按開始,然後導航到其他應用程序。大約5秒左右後,您的暫停事件將會執行。當你回來時,恢復事件將會觸發(或啓動/激活的事件,這取決於你是關機還是處於暫停狀態,請看這裏:https://msdn.microsoft.com/en-us/library/windows/應用/ hh986968.aspx)。也許你應該編輯你的原始問題,以顯示你的事件處理程序代碼的懸掛和恢復事件。 – Mike

1

這些API有你可以註冊三個事件。

  • CoreWindow.Activated將在您不再是前臺應用程序時引發。這可能是因爲用戶切換,或者因爲類似於提醒或電話呼叫等事件而出現在頂部等等。簡單地獲得敬酒通知而不是引發激活事件。
  • CoreWindow.VisibilityChanged將在您不再可見時引發。當用戶切換,鎖定手機等時會發生這種情況。
  • CoreApplication.Suspending將在您被暫停時引發。系統不會在用戶離開時立即掛起(如果他們快速切換回來,例如他們不小心點擊了開始按鈕)。相反,它會在提出此事件之前等待幾秒鐘。
+0

非常感謝!請說明如何註冊CoreWindow.Activated和VisibilityChanged?我知道我可以使用this.uspending + = this。但我不知道如何註冊這兩個事件的Windows Phone 8.1在C# – thsieh

相關問題