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

标签 javascript windows-8 windows-runtime

我正在尝试让音频在 Windows 8 中的应用程序外部工作(我正在使用 HTML5、Javascript 方法),所以当您关闭应用程序时,声音会继续工作,根据我在这里和在其他网站上,我相信这在 Windows 8 中称为“背景音频”,我已经按照 Microsoft Developer 网站上的所有教程进行操作,并在应用程序 list 中声明了背景音频:

<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 以具有哈希标签,但是当我按下开始按钮返回主页时,音频仍然停止,我做错了什么吗?

谢谢

最佳答案

我相信你还需要处理“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. 实现对媒体控件的支持。媒体控件是 Remote 或某些键盘上用于播放、暂停或停止音频的按钮。查看Configure keys for media sample在 MSDN 上有一个工作示例。除了您已经处理的 3 个事件之外,我只处理“stoppressed”时就能让示例正常工作。

有关更多信息,请观看 Your Metro style app, video and audio, part 2来自 2011 Build 大会。背景音频从视频的 31 分 20 秒左右开始覆盖,持续约 10 分钟。请注意,该视频来自 2011 年 9 月,涵盖了 Windows 8 的开发者预览版。这些概念仍然适用于 Windows 8 和 Windows RT 的已发布版本,但命名空间和属性名称在某些地方有所不同。

关于javascript - Windows 8 应用程序中的背景音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382917/

相关文章:

javascript - 如何解构 es6 javascript 嵌套对象

Windows 8 Phone 应用程序与 Windows 8 选项卡应用程序

javascript - 如何使用javascript中的变量填充html标签

javascript - Uncaught Error : Can't resolve all parameters for CountdownComponent: (?)

xaml - 如何在 XAML、Windows 8 的 super 按钮栏中设置设置属性?

c# - Metro 风格应用程序中成熟的绘画(绘图)应用程序

c# - Windows 8 应用程序本地存储

wpf - 从 Universal App 共享项目中引用图像资源

c# - 类属性不包含在 sqlite 数据库列中

javascript - 光滑的轮播仅显示第一项