【发布时间】:2015-02-19 04:12:40
【问题描述】:
这是在 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 和App.Resuming 事件,但这些事件不会在这些情况下触发。我错过了什么?
【问题讨论】:
标签: c# windows-runtime windows-store-apps windows-phone-8.1 win-universal-app