使用背景音频时,将通用应用程序(HTML5)部署到Windows Phone失败



我正在开发一个使用HTML5/JavaScript框架的通用应用程序。在这个应用程序中,我有一个带有HTML音频标记的页面(属性msAudioCategory设置为"BackgroundCapableMedia"),它与Windows.Media.SystemMediaTransportControls.getForCurrentView()进一步连接,以便在后台播放音频。在windows和phone项目中,我还设置了Declarations>Background Tasks>Audio,并将default.html页面设置为入口页面。

部署到Windows(本地计算机或模拟器)可以按预期工作。一切都好。然而,部署到电话模拟器或物理电话设备会抛出一个毫无帮助的错误:

Unexpected Error: Package could not be registered. (Exception from HRESULT: 0x80073CF6)

看不出有什么明显的原因。搜索网络表明,这个可能是一个错误,但我也怀疑在手机上播放背景音频可能需要不同的方法。

值得注意的是,启动一个新的空白通用应用程序,添加如上所述的声明(没有音频标签或支持代码),在windows上部署,但在手机上失败并出现相同错误。有什么想法吗?

我发现了一个问题,这个相当没有信息的错误试图告诉我:我的入口点无效。如前所述,我让它设置为default.html页面,但至少对于windows phone,它需要设置为有效的后台任务文件。在C#中,这是从Windows.ApplicationModel.Background.IBackgroundTask接口继承的东西。在JavaScript中,这是一个JS文件,看起来有点像:

(function () {
var backgroundTaskInstance = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
function doWork() {
    var settings = Windows.Storage.ApplicationData.current.localSettings;
    var key = backgroundTaskInstance.task.taskId.toString();
    settings.values[key] = "Succeeded";
    close();
}
if (!canceled) {
    doWork();
} else {
    key = backgroundTaskInstance.task.taskId.toString();
    settings.values[key] = "Canceled";
    close();
}
 })();

取自此处的样本:http://msdn.microsoft.com/en-us/library/windows/apps/hh977045.aspx

干杯:D

WindowsPhone 8.1不支持JavaScript的背景音频。您应该对此任务使用c#。仅此而已。

"重要信息:

您可以使用JavaScript编写后台音频应用程序。但是,Windows Phone 8.1不允许JavaScript在后台进程中运行。这意味着,前台应用程序和UI可以用JavaScript编写,但后台任务必须用C#或C++编写。WindowsPhone8.1的背景音频示例提供了一个JavaScript应用程序示例,该应用程序通过使用C#后台代理来支持背景音频。"

https://msdn.microsoft.com/en-us/library/windows/apps/dn720802.aspx

最新更新