/ / HTML5 odtwarzanieRate i Firefox - javascript, jquery, html5, firefox, html5-video

HTML5 playbackRate i Firefox - javascript, jquery, html5, firefox, html5-video

Mam stronę z odtwarzaczem wideo HTML5. Za pomocą jQuery stworzyłem bardzo prosty przycisk przełączania prędkości odtwarzania.

Użytkownik klika przycisk i mnoży prędkość właściwości odtwarzania wideo wideo przez 2 przy każdym naciśnięciu.

Więc możesz przejść od 1x do 2x, 4x, 8x, 16x, 32x, 64x, 128x ... i tak dalej.

Jednak w Firefoksie szybkość odtwarzania wideo na mojej stronie nigdy nie przekracza 5x.

Gdy tylko PlayRate wynosi 4, a skrypt mnoży go przez 2 - zmienia się w 5 (zamiast 8).

Ten problem nie występuje podczas testowania tej samej strony w Google Chrome.

Oto mój skrypt:

$("#change_speed").click(function()
{
var current_speed = ($("#video").get(0).playbackRate).toFixed(0);

console.log("playback speed: " + $("#video").get(0).playbackRate); //For debugging

if(current_speed == 0)
{
$("#video").get(0).playbackRate = 1;
}
else
{
$("#video").get(0).playbackRate = $("#video").get(0).playbackRate * 2;
}

});

W mojej funkcji nie ma już kodu. Nie ma żadnych innych procedur obsługi ani skryptów. Klikam przycisk, łamię się przed mnożnikiem: współczynnik odtwarzania wynosi 4. Łamam się po mnożniku, a współczynnik odtwarzania wynosi 5.

Jeśli wynosi 1, mnożnik zwraca 2. Jeśli wynosi 2, mnożnik zwraca 4. Jeśli wynosi 4, mnożnik zwraca 5. ... Co !?

W Chrome prędkość podwaja się zgodnie z zamierzeniami. Dlaczego w Firefoksie jest ograniczona do 5? Czy coś brakuje?

Odpowiedzi:

3 dla odpowiedzi № 1

Od MDN

Większość przeglądarek przestaje odtwarzać dźwięk na zewnątrzPlayRate granice 0,5 i 4, pozostawiając odtwarzanie wideo w ciszy. Dlatego zaleca się, aby w większości aplikacji ograniczyć zakres od 0,5 do 4.

Edytować: Każda przeglądarka obsługuje poruszanie się poza tymzalecany zakres inaczej. Firefox blokuje zakres wartości od 0,5 do 5. Chrome ogranicza od 0,5 do 16. Jeśli wykroczysz poza zalecany zakres, uzyskasz inne zachowanie we wszystkich przeglądarkach, więc sugeruję, aby ustawić go w kodzie na 4x.