gpt4 book ai didi

c# - BackgroundTask 未在 C# 应用程序中触发

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:18 24 4
gpt4 key购买 nike

我正在使用 Windows Phone 8.1 和 C#。

按照 Microsoft 的 MSDN 示例(位于:http://code.msdn.microsoft.com/windowsapps/BackgroundAudio-63bbc319)创建音频播放器,我尝试将其集成到我的项目中。然而,虽然代码在 Microsoft 的示例中运行良好,但在我将其集成到我的项目中后却无法按预期运行。

我将复制并粘贴可能包含问题的文件。 Constants.csApplicationSettingsHelper.csMyPlaylistManager.cs 与示例中的相同(您可以通过单击上面的链接查看并点击“浏览代码”选项卡)。

当我运行以下项目时,它会抛出以下错误:“后台音频任务未在预期时间启动”。如果我将 bool result = SererInitialized.WaitOne(2000); 代码块(在 StartBackgroundAudio() 中更改为 bool result = true;,它只是在控制台中打印“后台音频任务已初始化”,然后停止。

Page.xaml.cs

http://pastebin.com/L2zxzJKv

BackgroundAudio.cs

http://pastebin.com/zR6uzBf3

我不明白我做错了什么。我最终撤消了所有更改,并简单地使用了项目示例中完全相同的代码。我在 appmanifest 中添加了扩展。

我创建了一个示例项目来帮助某人解决问题并回答这个问题。您可以在 https://onedrive.live.com/redir?resid=ED2ED8732D8D457E!132&authkey=!AFBrZi5oI3k2zmU&ithint=file%2czip 找到它

最佳答案

您提供的 ZIP 文件在解决方案中只有一个项目。后台音频任务需要是解决方案中它自己单独的 Windows 运行时组件 项目。请再次查看示例解决方案并确保您已正确设置解决方案。

您的后台音频任务需要在单独的项目中的原因是因为所有后台任务都需要在单独的项目中,并且后台任务将在与前台应用程序不同的进程中运行。这样一来,如果操作系统暂停或终止您的应用程序(即您切换到另一个应用程序),那么您的后台音频任务将继续运行并播放音频,即使您的应用程序已被暂停。然后,您需要通过在进程之间传递消息来在后台音频任务和前台进程之间进行通信(请参阅 SendMessageToForegroundSendMessageToBackground)。

应用程序在后台运行时总是会被操作系统暂停,因此您需要一个单独的轻量级后台任务进程,该进程具有在后台运行的特殊权限以播放音乐。

这些页面对于解释所有概念非常有帮助:

关于c# - BackgroundTask 未在 C# 应用程序中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26067112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com