2013-01-17 9 views
5

Próbuję odtworzyć dźwięk (mp3) zaczynając od określonego miejsca w pliku dźwiękowym. Chcę, żeby działał na większości urządzeń mobilnych i działa, ale wygląda na to, że jest problem z Windows Phone 8. Działa dobrze na Samsung Galaxy i na iPhonie, ale na WP dźwięk zawsze zaczyna się od początku, ignorując zestaw currentTime. Jakieś pomysły? Dzięki!Dźwięk HTML: currentTime w IE

var sfile = "test.mp3'; 
    var myobj; 
    function init() 
    { 

     myobj=document.createElement('audio'); 
     myobj.style.position="relative"; 
     myobj.style.bottom=0; 
     myobj.src = sfile; 
     myobj.id='sound'; 

     document.body.insertBefore(myobj,document.body.lastChild); 
     myobj.load(); 
    } 
    //called when pressing a button 
    function test() 
    { 
     myobj.currentTime=30.0; 
     myobj.play() 
    } 

Odpowiedz

1

Mam więcej informacji na ten temat. Okazuje się, że nie możesz ustawić currentTime przed wywołaniem funkcji play(). Przynajmniej nie na telefonie z Windows. Muszę więc najpierw wywołać grę, a potem (po x ms) mogę ustawić currentTime.

Moim pomysłem jest teraz wyciszenie w pliku dźwiękowym i zapętlenie tej ciszy w sposób ciągły. Kiedy chcę zagrać dźwięk, mogę po prostu ustawić currentTime. Po zakończeniu części dźwiękowej ponownie uruchomię pętlę ciszy. O wiele łatwiej byłoby używać wielu ścieżek, ale niestety nie mam takiej opcji.

Tak, możliwe jest użycie currentTime na telefonie z Windows 8. Jednak natknąłem się na inny problem. Ponieważ teraz odtwarzam dźwięk przez cały czas, kiedy telefon przechodzi w tryb uśpienia, wydaje się, że javascript zawiesza się (powodując zatrzymanie pętli ciszy), ale mimo to wydaje dźwięk. Tak więc cały plik mp3 byłby uruchamiany od początku do końca. Próbowałem użyć zdarzenia onfocusout, aby zatrzymać pętlę i wstrzymać dźwięk, ale nie działa. Będzie nadal badać to raczej rzadkie i błędne zachowanie.

+0

Witam, mam podobne problemy. Czy dobrze rozwiązałeś? –

Powiązane problemy