2015-01-08 45 views
1

我試圖隨機化一些視頻,它們都是.webm和.mp4。如何成對隨機化?

我有兩個各視頻例如vid1.webm和vid1.mp4

我想有視頻隨機,並在同一時間進入視頻標籤拉兩個。

Safari瀏覽器不支持.webm所以這就是爲什麼我想有.MP4作爲備份和既需要隨機插入點擊瀏覽器。

我從一個數組加載它們,也無法弄清楚的文件夾結構應該如何上市了,我真的很想讓他們在一個數組我在幾百

var randomImage = new Array(); 

randomVideo[0] = "videos/1.webm/ or mp4"; //not sure how to do the file structure 
randomVideo[1] = "videos/2.webm/ or mp4"; // 
randomVideo[2] = "videos/3.webm/ or mp4"; // 

//trying to figure out this part 

$(function() { 
    $('a.click').click(function(e) { 
     e.preventDefault(); 
     var number = Math.floor(Math.random()*randomVideo.length); 
     $(this).html('<source src="'+randomVideo[number]+'" />'); 
    }); 
}); 

$(function() { 
    $('a.click').click(function(e) { 
     e.preventDefault(); 
     var number = Math.floor(Math.random()*randomVideo.length); 
     $(this).html('<source src="'+randomVideo[number]+'" type="video/mp4" />) 
    } 
}) 
正在加載

html

<a href="#" class="click"> 
    <section> 
     <video controls autoplay> 
      <script> 
       randomVideo() 
      </script> 
     </video>  
    </section> 
</a> 

如果有人能幫我弄明白這一點,將不勝感激! 想不通,還在學習。

+0

這是我不明白你的問題是什麼。你不能只擁有一組沒有擴展名的核心視頻URL,選擇一個隨機的URL,然後添加適當的擴展名,然後將其提供給瀏覽器? – jfriend00

+0

這不是一個合適的' PHPglue

+0

@jfriend00 yeah that would be what I am asking how to do. Except that I would need to randomize the extensions in a pair – h0bb5

回答

1

您有多個問題。首先你的數組名稱不匹配(randomImage和randomVideo)。不知道你爲什麼鉤了兩次點擊事件。一種方法是將路徑的公共部分存儲在數組中,然後連接文件結尾。此外,我不知道你想用img標籤做什麼...

無論如何,下面的代碼應該可以幫助你,如果我已經理解你正在嘗試做的事情。

var randomVideo = new Array(); 
// define your common video paths here 
randomVideo[0] = "videos/1"; 
randomVideo[1] = "videos/2"; 
randomVideo[2] = "videos/3"; 

function randomiseVideos() { 
     var number = Math.floor(Math.random() * randomVideo.length); 
     $('#myvid').empty(); // clean up from last time 
     // now add 2 sources (will fall back appropriately depending on client support) 
     $('#myvid').append('<source src="' + randomVideo[number] + '.webm" type="video/webm">'); 
     $('#myvid').append('<source src="' + randomVideo[number] + '.mp4" type="video/mp4">'); 
} 

$(function() { 
    // Randomise on page load 
    randomiseVideos(); 
    // handle click on test link 
    $('a.click').click(function (e) { 
     e.preventDefault(); 
     randomiseVideos(); 
    }); 
}); 

HTML:

<a href="#" class="click">Test Link</a> 
<section> 
    <video id="myvid" width="320" height="240" controls autoplay></video> 
</section> 

JS fiddle demo

+1

真棒!這看起來可能是我在尋找的東西。 快速問題,但是('#myvid')目標是什麼? – h0bb5

+0

HTML中的視頻標籤有'id =「myvid」'。因此,在標記 – geedubb

+0

@ h0bb5中定位裸露的視頻標籤是否看起來像您所追求的? – geedubb

1

視頻元素支持多個來源https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML5_audio_and_video

一個非常簡單的解決辦法是將存儲陣列中的視頻對象的列表:

var videos = [ 
    [{type:'mpg', 'src':'blah.mpg'}, {type:'webm', 'src':'blah.webm'}], 
    [{type:'mpg', 'src':'blah2.mpg'}, {type:'webm', 'src':'blah2.webm'}], 
]; 

... 

var video = videos[randomIndex]; 

並用它來輸出源,如:

<video controls> 
    <source src="blah.mpg" type="video/ogg"> 
    <source src="blah.webm" type="video/mp4"> 
    Your browser does not support the <code>video</code> element. 
</video> 
+0

這看起來很有趣,但javascript math.rand代碼將如何發揮它呢? – h0bb5

+0

我猜我想問的是如何知道甚至隨機使用該代碼? – h0bb5

+0

randomIndex = parseInt(Math.random()* videos.length); – jermel