这是在 Windows Phone 8.1 Store 应用程序中。我MainPage
有一个显示来自我的对象CaptureElement
的预览流。MediaCapture
对于应用程序内的导航(页面之间),这很好用:
MediaCapture mc;
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
mc = new MediaCapture();
await mc.InitializeAsync();
preview.Source = mc;
await mc.StartPreviewAsync();
}
protected override async void OnNavigatedFrom(NavigationEventArgs e)
{
await mc.StopPreviewAsync();
}
我可以导航到其他页面并返回,并且预览运行可靠。我在以下情况下遇到了问题:
- 用户按下 Windows 按钮,然后按下后退按钮
- 用户按下 Windows 按钮,然后使用任务切换器返回到我的应用程序
- 用户按下搜索按钮,然后按下返回按钮
- 用户按下电源按钮,然后再次按下并向上滑动以解锁设备
- 用户按住返回按钮进入任务切换器,然后再次点击我的应用程序
在上述每个操作(和/或它们的组合)之后,当我的应用程序返回时,预览会冻结在显示的最后一帧。
如果用户然后导航到不同的页面,然后返回到 MainPage,预览将再次开始运行而没有问题,所以这让我相信我只需要在从上述场景之一返回后停止/启动预览。
我尝试订阅App.Suspending
andApp.Resuming
事件,但这些不会在这些场合触发。我错过了什么?