2011-11-17 46 views
5

現在我有一系列視頻。我如何做到這一點,當我點擊下一步,並prev下載或上一個視頻在數組加載。打電話給我的數組中的下一個項目

<video id="video" controls autoplay width="1000"> 
    <source src="videos/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /> 
    <source src="videos/test.ogv" /> 
</video> 

<a href="#" onClick="javascript:vidSwap(vidURL[i+]); return false;">next</a> 



<script> 
var vidURL=["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos/test4.ogv","videos/test5.ogv" ]; // literal array 
function vidSwap(vidURL) { 
var myVideo = document.getElementsByTagName('video')[0]; 
myVideo.src = vidURL; 
myVideo.load(); 
myVideo.play(); 
} 

+0

在onclick屬性中,假設爲javascript,所以不需要以'javascript:'開始前面的函數調用。另外我建議如果你還沒有開始使用jQuery。 – benekastah

回答

2

使用YOUT代碼,它會是這樣的。 你需要做的是有一個JavaScript變量加載的視頻。 然後,當你點擊上一個或下一個時,你可以調用一個功能,將正確的視頻號碼,並調用它。

<script> 
var vidURL=["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos"] 
var video = 0; 

function vidSwap() { 
    var myVideo = document.getElementsByTagName('video')[video]; 
    myVideo.src = vidURL[video]; 
    myVideo.load(); 
    myVideo.play(); 
} 


function prevVideo() { 
    if(video == 0) { 
    video = vidUrl.length; 
    } 
    else { 
    video -= 1; 
    } 

    vidSwap(); 
} 

function nextVideo() { 
    if(video == length) { 
    video = 0; 
    } 
    else { 
    video += 1; 
    } 

    vidSwap(); 
} 

</script> 


<video id="video" controls autoplay width="1000"> 
    <source src="videos/test.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /> 
    <source src="videos/test.ogv" /> 
</video> 

<a href="#" onClick="javascript:prevVideo(); return false;">prev</a> 
<a href="#" onClick="javascript:nextVideo(); return false;">next</a> 
+0

當我實現這個返回false,我寫next goetzs

+0

這似乎仍然工作 – goetzs

+0

它可能有一些錯誤,因爲我做了它的頭。請參閱@brpyne響應並使用我的taughts。他說他的代碼是正確的。 –

1

介紹變量,它保存當前視頻索引,然後增加它或每次按下一個/上一次遞減它

</script> 
var i = 0; 
<script> 

javascript:vidSwap(vidURL[i++]) 
+0

當到達最後一個數組項時,它會中斷,然後按下一個:) –

1

它看起來像你錯過了在增量運算另一個加號。

嘗試改變

<a href="#" onClick="javascript:vidSwap(vidURL[i+]); return false;">next</a> 

向該

<a href="#" onClick="javascript:vidSwap(vidURL[i++]); return false;">next</a> 
+0

當到達最後一個數組項時,它將中斷。 –

+0

這是正確的。我想你會在處理完第一個問題後處理這種類型的邏輯。像這樣的語法錯誤可以很容易地監督,我已經打了我的額頭至少一百倍這樣的東西。 – brpyne

1

包裹着替代纏繞;

<a href="#" onClick="return Vids.next();">next</a> 
<a href="#" onClick="return Vids.prev();">prev</a> 

... 

var Vids = (function() { 
    var _currentId = -1; 
    var _urls = ["videos/test.ogv","videos/test2.ogv","videos/test3.ogv","videos/test4.ogv","videos/test5.ogv" ]; // literal array 
    return { 
     next: function() { 
      if (++_currentId >= _urls.length) 
       _currentId = 0; 
      return this.play(_currentId); 
     }, 
     prev: function() { 
      if (--_currentId < 0) 
       _currentId = _urls.length - 1; 
      return this.play(_currentId); 
     }, 
     play: function(id) { 
      var myVideo = document.getElementsByTagName('video')[0]; 
      myVideo.src = _urls[id]; 
      myVideo.load(); 
      myVideo.play(); 
      return false; 
     } 
    } 
})(); 
+0

現在這是更喜歡它:) –

+0

是否有可能在數組中放置多個源類型 – goetzs

+0

你是什麼人按源類型? –

相關問題