2012-11-14 10 views
5

Próbuję uzyskać dźwięk do pracy poza aplikacją (używam HTML5, podejście Javascript) w systemie Windows 8, więc po zamknięciu aplikacji dźwięk nadal działa, z czego Sprawdziłem tutaj i na innych stronach i uważam, że jest to nazywane dźwiękiem tła w Windows 8, śledziłem wszystkie tutoriale w witrynie Microsoft Developer i zadeklarowałem dźwięk w tle w manifeście aplikacji jako:Dźwięk w tle w Windows 8 App

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

i gdzie dodałem msAudioCategory = sterowanie "BackgroundCapableMedia" = "sterowanie" do mojego tagu HTML5 audio, jak tak:

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

i dodałam już także to do mojego pliku default.js który apprently potrzebne, choć nie jestem pewien co to robi

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

Próbowałem również zmianę identyfikatora w ostatniej części, aby mieć hash tag również, ale nadal, kiedy naciskasz przycisk Start, aby wrócić do domu zatrzymuje się dźwięk, czy robię coś nie tak?

Dzięki

+0

ktoś to wie? – cameronmarklewis

Odpowiedz

4

wierzę, trzeba także obsługiwać "stoppressed" zdarzenie:

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

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

Trzy kroki do odtwarzania tła dźwięku w Windows 8 aplikacje JavaScript to:

  1. Decalare zadanie w tle audio w pakiecie .appxmanifest. Wymień także StartPage. Zrobiłeś to poprawnie.
  2. Zestaw msAudioCategory="BackgroundCapableMedia". Ty to zrobiłeś.
  3. Zaimplementuj obsługę kontrolek multimediów. Sterowanie multimediami to przyciski na pilocie lub na niektórych klawiaturach, które odtwarzają, wstrzymują lub zatrzymują dźwięk. Zobacz stronę Configure keys for media sample na stronie MSDN, aby uzyskać przykład działania. Udało mi się przekonać przykład do działania, gdy tylko obsługa "zatrzymano" oprócz 3 zdarzeń, które już obsługiwałeś.

Aby uzyskać więcej informacji, obejrzyj Your Metro style app, video and audio, part 2 z konferencji Build 2011. Dźwięk w tle jest pokryty zaczynając od około 31 minut, 20 sekund do filmu i trwa około 10 minut. Zauważ, że ten film wideo pochodzi z września 2011 r. I obejmuje Podgląd dewelopera systemu Windows 8. Koncepcje te nadal mają zastosowanie do wydanych wersji systemów Windows 8 i Windows RT, ale przestrzenie nazw i nazwy atrybutów różnią się w niektórych miejscach.

Powiązane problemy