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

What event is raised when the Start button is pressed in Windows Phone 8.1 RT

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

这是我正在使用的 API

_mediaCapture.StartRecordToStorageFileAsync(_profile, _recordStorageFile);

capturePreview.Source = App._mediaCapture;

_mediaCapture.StartPreviewAsync();

您可以注册三个活动。

  • CoreWindow.Activated 将在您不再是前台应用程序时引发。这可能是因为用户切换了,或者是因为提醒或 Phone 呼叫在顶部弹出等。简单地获取 toast 通知不会 不会 引发 Activated 事件.
  • CoreWindow.VisibilityChanged 将在您不再可见时出现。当用户切换离开、锁定 phone 等
  • 时会发生这种情况
  • CoreApplication.Suspending 会在你被暂停时被提升。当用户切换离开时系统不会立即挂起您(以防他们快速切换回来,例如他们不小心点击了开始按钮)。相反,它会在引发此事件之前等待几秒钟。

您在此处遇到的问题与以下事实有关:只要连接了调试器,suspending/resuming 就不会像在您的应用 运行 上运行时那样工作拥有。

看这里:https://msdn.microsoft.com/en-us/library/windows/apps/hh974425.aspx

尝试与您现在正在做的相同的事情,除了在您的应用进入后台后按 VS 中的暂停按钮。要恢复它,请按 Resume 按钮。或者,在不附加调试器的情况下尝试同样的事情。 只要您正确处理 Suspending/Resuming 事件,MediaCapture 生命周期就不会成为问题。

要了解更多信息,请查看 Microsoft github 存储库中的 UniversalCameraSample:http://aka.ms/2015builduniversalcamerasample。它针对 Windows 10,但很多内容仍然适用于 8.1。