Windows phone 8 如何在windows phone 8上通过将应用程序发送到后台中断录制时保存视频

Windows phone 8 如何在windows phone 8上通过将应用程序发送到后台中断录制时保存视频,windows-phone-8,camera,windows-phone-8.1,windows-store-apps,Windows Phone 8,Camera,Windows Phone 8.1,Windows Store Apps,我正在体验Windows Phone 8上的视频录制。我想处理的情况是,当用户将我的应用程序置于后台时,它正在录制视频。我想在退出之前保存已录制的视频。 我使用此示例中的代码处理此情况: 我从以下位置调用此方法: protected async override void OnNavigatingFrom(NavigatingCancelEventArgs e) 但是视频没有被保存。在调试控制台中,我只收到第一条消息:“停止录制…”,但没有记录“停止录制!”消息。资源似乎在我处理它们之前就已

我正在体验Windows Phone 8上的视频录制。我想处理的情况是,当用户将我的应用程序置于后台时,它正在录制视频。我想在退出之前保存已录制的视频。 我使用此示例中的代码处理此情况:

我从以下位置调用此方法:

protected async override void OnNavigatingFrom(NavigatingCancelEventArgs e)

但是视频没有被保存。在调试控制台中,我只收到第一条消息:“停止录制…”,但没有记录“停止录制!”消息。资源似乎在我处理它们之前就已经被销毁了。

当你的应用程序移到后台时,你只有很短的时间运行代码

当您从页面导航时,不要触发保存,而是查看事件,该事件允许您使用延迟尝试并运行代码更长时间,以便您可以在应用程序失去资源分配之前完成整理

比如:

async protected void OnSuspending(object sender, SuspendingEventArgs args)
{
    SuspendingDeferral deferral = args.SuspendingOperation.GetDeferral();
    await StopRecordingAsync();
    deferral.Complete();
}

谢谢你的回答,我会试试的。
async protected void OnSuspending(object sender, SuspendingEventArgs args)
{
    SuspendingDeferral deferral = args.SuspendingOperation.GetDeferral();
    await StopRecordingAsync();
    deferral.Complete();
}