1

これに関する以前の投稿とMicrosoftによるドキュメントを読みましたが、アプリでSoundをバックグラウンドで実行できないようです。100%再生されますが、アプリが一時停止されると音楽も停止します。オーディオを選択する「バックグラウンドタスク」宣言を追加しました。オーディオタグは次のようになります。

<audio id="musicplayr" msAudioCategory="BackgroundCapableMedia" controls="controls"><source src="song.mp3"/> </audio

そして最後に私のJavaScriptにはMediaControlsへの参照が含まれています

var MediaControls = Windows.Media.MediaControl;

        // Add event listeners for the buttons
        MediaControls.addEventListener("playpressed", play, false);
        MediaControls.addEventListener("pausepressed", pause, false);
        MediaControls.addEventListener("playpausetogglepressed", playpausetoggle, false);

        // Add event listeners for the audio element
        document.getElementById("musicplayr").addEventListener("playing", playing, false);
        document.getElementById("musicplayr").addEventListener("paused", paused, false);
        document.getElementById("musicplayr").addEventListener("ended", ended, false);

以下のコードには、イベントハンドラーがあります

// Define functions that will be the event handlers
function play() {
    document.getElementById("musicplayr").play();
}
function pause() {
    document.getElementById("musicplayr").pause();
}

function playpausetoggle() {
    if(MediaControls.isPlaying === true) {
        document.getElementById("musicplayr").pause();
    } else {
        document.getElementById("musicplayr").play();
    }
}

function playing() {
    Windows.Media.MediaControl.isPlaying = true;
}

function paused() {
    Windows.Media.MediaControl.isPlaying = false;
}

function ended() {
    Windows.Media.MediaControl.isPlaying = false;
}

*musicplayrはhtml5タグのリファレンスであることに注意してください

これが機能しない理由を理解した助けはありますか?

4

1 に答える 1

2

stoppressedイベントのイベントハンドラーも必要です。4つのハンドラー(playpressed、pausepressed、playpausetogglepressed、stoppressed)がないと、バックグラウンドオーディオは有効になりません。同じ問題が発生したMSDNフォーラムのhttp://social.msdn.microsoft.com/Forums/en-IN/winappswithhtml5/thread/2ca0c122-df31-401c-a444-2149dd3e8d68を参照してください。

.Kraig

于 2013-02-09T03:26:05.843 に答える