5

Windows 8でアプリの外部でオーディオを機能させようとしています(HTML5、Javascriptアプローチを使用しています)。そのため、アプリを閉じても、ここや他のサイトで調査した結果から、サウンドは引き続き機能します。これはWindows8のバックグラウンドオーディオで呼び出されると思います。MicrosoftDeveloperサイトのすべてのチュートリアルに従い、アプリマニフェストでバックグラウンドオーディオを次のように宣言しました。

<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

「停止」イベントも処理する必要があると思います。

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

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

Windows8JavaScriptアプリでバックグラウンドオーディオを再生するための3つの手順は次のとおりです。

  1. package.appxmanifestでオーディオバックグラウンドタスクをデカラレします。StartPageもリストします。あなたはこれを正しく行いました。
  2. セットmsAudioCategory="BackgroundCapableMedia"。あなたはこれをしました。
  3. メディアコントロールのサポートを実装します。メディアコントロールは、オーディオを再生、一時停止、または停止するリモコンまたは特定のキーボードのボタンです。実用的な例については、MSDNのメディアサンプルのキーの構成を参照してください。すでに処理している3つのイベントに加えて、「stoppressed」のみを処理する場合に、この例を機能させることができました。

詳細については、2011 BuildカンファレンスのMetroスタイルアプリ、ビデオ、オーディオ、パート2をご覧ください。バックグラウンドオーディオは、ビデオの約31分20秒から始まり、約10分間続きます。このビデオは2011年9月のものであり、Windows8の開発者プレビューをカバーしていることに注意してください。概念はリリースされたバージョンのWindows8とWindowsRTにも引き続き適用されますが、名前名と属性名は場所によって異なります。

于 2012-12-21T22:04:59.447 に答える