在Windows Phone 8.1 RT中按下“开始”按钮时会引发什么事件

时间:2015-05-09 22:50:03

标签: windows-phone-8.1 lifecycle

我在我的应用程序中使用了MediaCapture API。假设我开始录制和预览。在录制过程中,我按下开始键,然后长按Back键并选择我的应用程序(任务交换),快速返回应用程序。结果是预览冻结在模拟器或8.1 WP硬件上运行。我没有找到更好的事件来注册Start键。我理解这一点.Resume可以在你的APP被停用时处理恢复。但是这里我的意思是我在2~3秒内从Start切换回来并且没有调用Resume调用。我想我可以在按下开始键作为解决方法时禁用预览。然后当App返回前台时,用户可以重新开始录制。但是,这两种情况我都找不到合适的事件。当然,如果在换回APP时没有冻结预览,我不需要做任何事情。现在看来,在从Start开始交换任务后,预览无法正常工作。

以下是我正在使用的API

_mediaCapture.StartRecordToStorageFileAsync(_profile, _recordStorageFile);

capturePreview.Source = App._mediaCapture;

_mediaCapture.StartPreviewAsync();

2 个答案:

答案 0 :(得分:1)

您可以注册三个活动。

    当您不再是前台应用程序时,将会引发
  • CoreWindow.Activated。这可能是因为用户被切换,或者因为提醒或电话呼叫之类的东西被弹出等等。只是通过Toast通知提出激活事件。
  • 当您不再可见时,
  • CoreWindow.VisibilityChanged将被提升。当用户切换,锁定电话等时会发生这种情况。
  • 当你被停职时,
  • CoreApplication.Suspending会被提出。当用户切换时,系统不会立即暂停您(如果他们快速切换回来,例如他们不小心点击了“开始”按钮)。相反,它会在提起此事件之前等待几秒钟。

答案 1 :(得分: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。