2013-04-16 11 views
6

Mam szybkie odtwarzanie do przodu. Teraz próbuję z częścią do przewijania z liczbą ujemną, ale to nie działa. W3school mówi, że do przewinięcia używa liczby ujemnej. http://www.w3schools.com/tags/av_prop_playbackrate.asp Ktoś może mi powiedzieć, co zrobiłem źle?jQuery, dlaczego funkcja odtwarzania wstecznego nie działa?

Oto mój kod javascript pracował dla fast forward,

$("#speed").click(function() { // button function for 3x fast speed forward 
    video.playbackRate = 3.0; 
}); 

to tutaj nie sukces zwijanie kodu,

$("#negative").click(function() { // button function for rewind 
    video.playbackRate = -3.0; 
}); 
+1

Nota boczna: NIE używaj w3schools ... [przeczytaj to] (http://w3fools.com/). – Dom

+0

Jestem zaskoczony, że w3schools nie jest dobre. Teraz będę musiał winić mój uniwersytet za zmuszanie mnie do używania metody w3schools. – StudentIT

Odpowiedz

6

Sample Fiddle

Nie wygląda na to, że istnieje complete browser support dla opcji szybkości odtwarzania, jeśli chodzi o przewijanie do tyłu. Możesz go sfałszować używając setinterval i odjąć currentTime wideo.

var video = document.getElementById('video'); 
var intervalRewind; 
$(video).on('play',function(){ 
    video.playbackRate = 1.0; 
    clearInterval(intervalRewind); 
}); 
$(video).on('pause',function(){ 
    video.playbackRate = 1.0; 
    clearInterval(intervalRewind); 
}); 
$("#speed").click(function() { // button function for 3x fast speed forward 
    video.playbackRate = 3.0; 
}); 
$("#negative").click(function() { // button function for rewind 
    intervalRewind = setInterval(function(){ 
     video.playbackRate = 1.0; 
     if(video.currentTime == 0){ 
      clearInterval(intervalRewind); 
      video.pause(); 
     } 
     else{ 
      video.currentTime += -.1; 
     } 
      },30); 
}); 

Dodałem również kilka dodatkowych słuchaczy dla przycisku odtwarzania i pauzy, aby wyczyścić interwał. Może zajrzeć do robienia niektórych funkcji przełączania na przyciskach szybkiego przewijania i przewijania do przodu.

+0

działa dobrze, ale skąd wiadomo, że jeśli przewijanie do tyłu może dopasować prędkość do szybkości odtwarzania z przyspieszeniem 3.0? – StudentIT

+0

@StudentIT baw się z opóźnieniem czasowym aż do momentu, w którym poczujesz się tak samo, jak przy przewijaniu do przodu. Czułem, że 30 jest całkiem blisko. –

+0

, więc jeśli mam 1,5 zamiast 3.0. 30 będzie musiało się zmienić, ale pozostawić -.1 samodzielnie? – StudentIT

1
  • Upewnij się przetestować w obsługiwanej przeglądarce. I tylko okazało się, że działa na IE10 (choć jest to dość niechlujny)

  • próbuje ustawić wartość ujemną w IE9 causes the video to pause (ustawia go na 0)

  • To ma pracować w chromie według w3schools, ale nie miałem szczęście tam

  • powinien działać na Safari też, chociaż nie testowałem

    example

+0

To powinien być komentarz, ponieważ nie odpowiada na pytanie. – Dom

+0

@Dom nie może skomentować jeszcze pytania .. za mało punktów rep (chyba) – potatoes

+0

Powiedział, że działało w Chrome, ale przetestowałem go i nie działa wcale. Tylko szybko do przodu. – StudentIT

1

To jest kolejny przykład dostarczenia fałszywych informacji przez użytkownika w3school.com. Zapomnieli podkreślić, że:

Gdy element posiada aktualny kontroler multimediów, atrybut playbackRate jest ignorowany i obecny kontroler multimediów na playbackRate jest używany zamiast.

Źródło:http://www.w3.org/TR/html5/embedded-content-0.html#playing-the-media-resource

Po pewnym testów z wykorzystaniem this demo, okazuje się, gdy regulator mediów jest obecny, playbackRate musi być większa lub równa 0. Jeśli video.playbackRate < 0, to po prostu nie będzie grać.

Oznacza to, że nie można "przewinąć", używając playbackRate, gdy obecny jest kontroler multimediów. Jednakże, można przewinąć film robiąc coś takiego:

var _el = document.getElementById("video"); 
_el.currentTime -= 5; 

Demo: http://jsfiddle.net/dirtyd77/sZVAq/3/

lub

<button onclick='video.currentTime-=5'>Rewind</button>

Demo: http://jsfiddle.net/dirtyd77/sZVAq/2/

+1

+1 dla źródła w3.org! –

+0

to przeskakiwanie do tyłu, chcę szybkość przewijania klatek, nie przeskakiwanie do tyłu. – StudentIT

Powiązane problemy