Javascript Windows 8应用程序中的背景音频

Javascript Windows 8应用程序中的背景音频,javascript,windows-8,windows-runtime,Javascript,Windows 8,Windows Runtime,我试图在Windows 8中让音频在应用程序之外工作(我使用的是HTML5、Javascript方法),所以当你关闭应用程序时,声音会继续工作,我在这里和其他网站上进行了研究,我相信这在Windows 8的背景音频中被称为音频,我遵循了Microsoft Developer网站上的所有教程,并已在应用程序清单中声明背景音频,如下所示: <Extension Category="windows.backgroundTasks" StartPage="default.html">

我试图在Windows 8中让音频在应用程序之外工作(我使用的是HTML5、Javascript方法),所以当你关闭应用程序时,声音会继续工作,我在这里和其他网站上进行了研究,我相信这在Windows 8的背景音频中被称为音频,我遵循了Microsoft Developer网站上的所有教程,并已在应用程序清单中声明背景音频,如下所示:

<Extension Category="windows.backgroundTasks" StartPage="default.html">
      <BackgroundTasks>
        <Task Type="audio" />
        <Task Type="controlChannel" />
      </BackgroundTasks>
    </Extension>
我还尝试在最后一部分中更改ID,使其具有哈希标记,但当我按下开始按钮回家时,音频停止,我是否做错了什么


谢谢

我相信您还需要处理“停止”事件:

在Windows 8 JavaScript应用程序中播放背景音频的三个步骤是:

  • 贴花是软件包.appxmanifest中的音频背景任务。同时列出一个起始页。你做得对
  • 设置msAudioCategory=“BackgroundCapableMedia”。是你干的
  • 实现对媒体控件的支持。媒体控件是遥控器或某些键盘上播放、暂停或停止音频的按钮。有关工作示例,请参见MSDN上的。除了您已经在处理的3个事件外,我还能够在仅处理“stopperstered”的情况下使示例正常工作
  • 有关更多信息,请观看2011年构建大会。背景音频从视频开始约31分20秒,持续约10分钟。注意,此视频是从2011年9月开始的,涵盖了Windows 8的开发者预览。这些概念仍然适用于Windows 8和Windows RT的发布版本,但名称空间和属性名称在某些地方有所不同

    <audio id="playback" msAudioCategory="BackgroundCapableMedia" controls="controls"> 
        </audio>
    
    // Declare a variable that you will use as an instance of an object
    var mediaControls;
    
    // Assign the button object to mediaControls
    mediaControls = Windows.Media.MediaControl;
    
    // Add an event listener for the Play, Pause Play/Pause toggle button
    mediaControls.addEventListener("playpausetogglepressed", playpausetoggle, false);
    mediaControls.addEventListener("playpressed", playbutton, false);
    mediaControls.addEventListener("pausepressed", pausebutton, false);
    
    // The event handler for the play/pause button
    function playpausetoggle() {
        if (mediaControls.isPlaying === true) {
            document.getElementById("playback").pause();
        } else {
            document.getElementById("playback").play();
        }
    }
    
    // The event handler for the pause button
    function pausebutton() {
        document.getElementById("playback").pause();
    }
    
    // The event handler for the play button
    function playbutton() {
        document.getElementById("playback").play();
    }
    
    mediaControls.addEventListener("stoppressed", stop, false);
    
    function stop() {
        // Handle the stop event.
        document.getElementById("playback").pause();
        document.getElementById("playback").currentTime = 0;
    }