我在我的应用程序中使用了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();
答案 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。