5

我试图让音频在 Windows 8 中的应用程序之外工作(我正在使用 HTML5、Javascript 方法),所以当你关闭应用程序时,声音会继续工作,从我在这里和其他网站上的研究来看我相信这在 Windows 8 '背景音频中被调用,我已经遵循了 Microsoft 开发人员网站上的所有教程,并在应用程序清单中声明了背景音频:

<Extension Category="windows.backgroundTasks" StartPage="default.html">
      <BackgroundTasks>
        <Task Type="audio" />
        <Task Type="controlChannel" />
      </BackgroundTasks>
    </Extension>

并且我已将 msAudioCategory="BackgroundCapableMedia" controls="controls" 添加到我的 HTML5 音频标签中,如下所示:

<audio id="playback" msAudioCategory="BackgroundCapableMedia" controls="controls"> 
    </audio>

我还把它添加到了我的 default.js 文件中,虽然我不确定这是做什么的

// 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();
}

我还尝试在最后一部分中更改 ID 以具有井号标签,但是当我按下开始按钮回家时音频停止,我做错了什么吗?

谢谢

4

1 回答 1

4

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

mediaControls.addEventListener("stoppressed", stop, false);

function stop() {
    // Handle the stop event.
    document.getElementById("playback").pause();
    document.getElementById("playback").currentTime = 0;
}

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

  1. 在package.appxmanifest中声明一个音频后台任务。还要列出一个StartPage。你这样做是正确的。
  2. 设置msAudioCategory="BackgroundCapableMedia"。你这样做了。
  3. 实施对媒体控制的支持。媒体控件是遥控器或某些键盘上用于播放、暂停或停止音频的按钮。有关工作示例,请参阅MSDN 上的媒体示例配置密钥。除了您已经处理的 3 个事件之外,我仅在处理“stoppressed”时才能使示例正常工作。

有关更多信息,请观看2011 Build 会议的第 2 部分 Your Metro 风格应用程序、视频和音频。背景音频从视频开始约 31 分 20 秒开始覆盖,持续约 10 分钟。请注意,此视频来自 2011 年 9 月,涵盖了 Windows 8 的开发人员预览版。这些概念仍然适用于 Windows 8 和 Windows RT 的已发布版本,但命名空间和属性名称在某些地方有所不同。

于 2012-12-21T22:04:59.447 回答