2013-04-16 19 views
6

我得到了快進playbackRate工作正常。現在我嘗試使用負數的倒帶部分,但不起作用。 w3school說使用負數來倒帶它。 http://www.w3schools.com/tags/av_prop_playbackrate.asp 任何人都可以告訴我我做錯了什麼?jQuery,爲什麼倒帶playbackRate不起作用?

這裏我的javascript代碼工作快進,

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

當年這裏不是成功退代碼,

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

備註:請勿使用w3schools ... [閱讀本文](http://w3fools.com/)。 – Dom

+0

我很驚訝w3schools不好。現在我必須責怪我的大學迫使我使用w3schools的方式。 – StudentIT

回答

6

但是,你可以做類似後退視頻210

就倒帶而言,看起來不像complete browser support作爲回放速率選項。您可以使用setinterval並減去視頻的currentTime來僞造。

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

我還爲播放和暫停按鈕添加了一些額外的偵聽器來清除間隔。可能要考慮在快速前進和後退按鈕上做一些切換功能。

+0

它工作正常,但你怎麼知道,如果倒帶可以匹配速度作爲快速前進playbackrate 3.0? – StudentIT

+0

@StudentIT玩弄間隔延遲,直到你獲得與快進相同的倒帶感受。我感覺30很接近。 –

+0

所以如果我有1.5而不是3.0。 30將不得不改變,但只有離開-1。 – StudentIT

1
  • 確保在支持的瀏覽器測試。我才發現它在IE10工作(雖然這是相當草率)

  • 試圖在IE9 causes the video to pause設置爲負值(將它設置爲0)

  • 它應該根據W3Schools的鍍鉻工作,但我還沒有運氣有

  • 應該在Safari上工作太,雖然我沒有測試

    example

+0

這應該是一個評論,因爲它不回答問題。 – Dom

+0

@Dom不能評論一個問題..沒有足夠的代表點(我認爲) – potatoes

+0

它說它在Chrome上工作,但我測試了它,它根本不工作。只有快進。 – StudentIT

1

這是另一個例子w3school.com提供虛假信息。他們忘記指出:

當該元件具有當前媒體控制器,該playbackRate 屬性被忽略,而當前的媒體控制器的playbackRate 來代替。

來源:http://www.w3.org/TR/html5/embedded-content-0.html#playing-the-media-resource

使用this demo經過一番測試,事實證明,當媒體控制器存在,playbackRate必須大於或等於0。如果video.playbackRate < 0,它根本不會玩。

這意味着當介質控制器存在時,您不能使用playbackRate「倒帶」。

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

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

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

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

+1

爲w3.org源代碼+1! –

+0

這是跳回倒帶,我想幀速度倒帶,而不是跳回倒帶。 – StudentIT