2013-08-03 2 views
0

사이트를 방문 할 때마다 무작위로 변경되는 179- 비디오 루프를 무작위로 지정하려고하지만 한 번에 두 개 이상의 비디오를 재생할 수는 없습니다.무작위로 추출한 HMTL5 비디오 배열 하나의 비디오 만 재생

{ 
    function getRandom(min, max) { 
    if (min > max) { 
     return -1; 
    } 
    if (min == max) { 
     return min; 
    } 
    var r; 
    do { 
     r = Math.random(); 
    } 
    while (r == 1.0); 
    return min + parseInt(r * (max - min + 1)); 
} 

function randomSrc(videoId) { 
    console.log("randomSrc, " + videoId); 
    var vid = $("#" + videoId); 
    //var rndm = videoArray[getRandom(0, videoArray.length - 1)]; 
    var rndm = "001.webm"; 
    $(vid).attr("src", rndm).get(0).play(); 
    $(vid).get(0).addEventListener('ended', function() { 
     randomSrc("v" + getRandom(1, 3)); 
    }, false); 
} 
var videoArray = ["001.webm", "002.webm", "003.webm", "004.webm", "005.webm", "006.webm", "007.webm", "008.webm", "009.webm", "010.webm", "011.webm", "012.webm", "013.webm", "014.webm", "015.webm", "016.webm", "017.webm", "018.webm", "019.webm", "020.webm", "021.webm", "022.webm", "023.webm", "024.webm", "025.webm", "026.webm", "027.webm", "028.webm", "029.webm", "030.webm", "031.webm", "032.webm", "033.webm", "034.webm", "035.webm", "036.webm", "037.webm", "038.webm", "039.webm", "040.webm", "041.webm", "042.webm", "043.webm", "044.webm", "045.webm", "046.webm", "047.webm", "048.webm", "049.webm", "050.webm", "051.webm", "052.webm", "053.webm", "054.webm", "055.webm", "056.webm", "057.webm", "058.webm", "059.webm", "060.webm", "061.webm", "062.webm", "063.webm", "064.webm", "065.webm", "066.webm", "067.webm", "068.webm", "069.webm", "070.webm", "071.webm", "072.webm", "073.webm", "074.webm", "075.webm", "076.webm", "077.webm", "078.webm", "079.webm", "080.webm", "081.webm", "082.webm", "083.webm", "084.webm", "085.webm", "086.webm", "087.webm", "088.webm", "089.webm", "090.webm", "091.webm", "092.webm", "093.webm", "094.webm", "095.webm", "096.webm", "097.webm", "098.webm", "099.webm", "100.webm", "101.webm", "102.webm", "103.webm", "104.webm", "105.webm", "106.webm", "107.webm", "108.webm", "109.webm", "110.webm", "111.webm", "112.webm", "113.webm", "114.webm", "115.webm", "116.webm", "117.webm", "118.webm", "119.webm", "120.webm", "121.webm", "122.webm", "123.webm", "124.webm", "125.webm", "126.webm", "127.webm", "128.webm", "129.webm", "130.webm", "131.webm", "132.webm", "133.webm", "134.webm", "135.webm", "136.webm", "137.webm", "138.webm", "139.webm", "140.webm", "141.webm", "142.webm", "143.webm", "144.webm", "145.webm", "146.webm", "147.webm", "148.webm", "149.webm", "150.webm", "151.webm", "152.webm", "153.webm", "154.webm", "155.webm", "156.webm", "157.webm", "158.webm", "159.webm", "160.webm", "161.webm", "162.webm", "163.webm", "164.webm", "165.webm", "166.webm", "167.webm", "168.webm", "169.webm", "170.webm", "171.webm", "172.webm", "173.webm", "174.webm", "175.webm", "176.webm", "177.webm", "178.webm", "179.webm"]; 
//var rndm = videoArray[getRandom(0, videoArray.length - 1)]; 
var rndm = "004.webm"; 
$("#v1").attr("src", rndm); 
randomSrc("v1" + getRandom(1, 3)); 
this.removeEventListener("load", arguments.callee, false); 
})  

</script> 
+0

뭔가를 시도? 몇 가지 오타가 있습니까? 비록 여기에서 잘 작동하는 것처럼 보입니다. – putvande

+0

'Math.random' 절대 정확히 1을 반환하지 않습니다. 왜 그 상태를 확인하겠습니까? –

답변

0

Ahem? 먼저 # v1의 소스를 "004.webm"으로 설정하고 id # v11, # v12 또는 # v13을 사용하는 요소의 소스를 "001.webm"으로 하드 코딩하면 이것이 절대 진행되지 않습니다. 이런 식으로 일해라.

대신 당신이 당신의 마크 업을 업데이트 할 수이

var videoArray = [ ... ]; 
function getRandom(...) { ... }; 

function randomize(videoId) { 
    var vid = $('#' + videoId); 
    function setRandom() { 
     var index = getRandom(0, videoArray.length - 1) 
     vid.attr("src", videoArray[index]).get(0).play(); 
    }; 
    setRandom(); 
    vid.bind("ended", function() { 
     setRandom(); 
    }); 
}; 
randomize('v1');