2012-11-14 6 views
5

Sto cercando di far funzionare l'audio all'esterno dell'app (sto utilizzando l'approccio HTML5, Javascript) in Windows 8, quindi quando chiudi l'app il suono continua a funzionare, da cosa Ho fatto ricerche qui e su altri siti e credo che questo sia chiamato nell'audio di sfondo di Windows 8, ho seguito tutte le esercitazioni sul sito Microsoft Developer e ho dichiarato l'audio di sottofondo nel manifest dell'app in questo modo:Audio di sottofondo nell'app di Windows 8

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

e dove ho aggiunto le msAudioCategory = controlli "BackgroundCapableMedia" = "controlli" alla mia tag audio HTML5 come così:

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

e Ho anche aggiunto questo al mio file di Default.js che era apprently necessaria, anche se non sono sicuro di quello che fa

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

Ho anche provato a cambiare l'ID nell'ultima parte di avere un anche il tag hash, ma quando premo il pulsante di avvio per tornare a casa l'audio si interrompe, sto facendo qualcosa di sbagliato?

Grazie

+0

qualcuno lo sa? – cameronmarklewis

risposta

4

credo è anche necessario gestire l'evento "stoppressed":

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

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

I tre passaggi per la riproduzione audio di sottofondo in Windows 8 applicazioni JavaScript sono:

  1. Decalare un'attività audio in background in package.appxmanifest. Elenca anche una StartPage. L'hai fatto correttamente
  2. Set msAudioCategory="BackgroundCapableMedia". L'hai fatto tu.
  3. Supporto degli strumenti per i controlli multimediali. I controlli multimediali sono pulsanti sui telecomandi o su determinate tastiere che riproducono, mettono in pausa o arrestano l'audio. Vedere lo Configure keys for media sample su MSDN per un esempio funzionante. Sono stato in grado di ottenere l'esempio per lavorare quando gestivo solo "stoppressed" oltre ai 3 eventi che stavi già gestendo.

Per ulteriori informazioni, guardare Your Metro style app, video and audio, part 2 dalla conferenza Costruire 2011. L'audio di sottofondo viene coperto a partire da circa 31 minuti, 20 secondi nel video e dura circa 10 minuti. Si noti che questo video è da settembre 2011 e copre l'anteprima dello sviluppatore di Windows 8. I concetti si applicano ancora alle versioni rilasciate di Windows 8 e Windows RT, ma in alcuni punti gli spazi dei nomi e i nomi degli attributi sono diversi.

Problemi correlati