2012-10-08 177 views
3

我正在尝试为HTML5视频播放列表构建客户端解决方案,我无法在此项目中使用AJAX或XML,并且导致我出现了一些问题。使用Javascript的HTML5视频播放器

基本上我在一个视频中加载了一个视频标签,然后是一个名为“播放列表”的无序列表,其中包含我所有的视频。我有它的工作原理,以便它可以播放Mov或Ogv作为播放列表中的一个页面,但我无法在列表中找到回退功能。我有点卡住了,我已经读过浏览器嗅探是老练,但不能提出解决方案。任何帮助将不胜感激!

这是到目前为止我的代码 -

**HTML** 
    <!-- /playlist --> 

<div class="span2"> 
    <ul id="playlist"> 
     <li class="active"> 
      <a href="disc_content/video/retro_photography_effects/film_burn.mov"/><img src="images/video/image1.jpg" style="margin-bottom:21px;"></a> 
      <a href="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv"><img src="images/video/image1.jpg" style="margin-bottom:21px;"></a> 
     </li> 

     <li> 
      <a href="disc_content/video/retro_photography_effects/holga.mov" /><img src="images/video/image2.jpg" style="margin-bottom:21px;"></a> 
      <a href="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv"></a> 
     </li> 

     <li> 
      <a href="disc_content/video/retro_photography_effects/holga.mov" /><img src="images/video/image2.jpg" style="margin-bottom:21px;"></a> 
      <a href="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv"></a> 
     </li> 

     <li> 
      <a href="disc_content/video/retro_photography_effects/holga.mov" /><img src="images/video/image2.jpg" style="margin-bottom:21px;"></a> 
      <a href="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv"></a> 
     </li> 
    </ul> 
</div> 

    <!-- /playlist --> 

    <!-- /video --> 

<div class="span9"> 
    <video id="video" width="960" height="600" controls="controls" autoplay="autoplay"> 
     <source type="video/mp4" src="disc_content/video/retro_photography_effects/holga.mov" /> 
     <source type="video/ogg" src="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv" /> 
     <a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie"> <img src="images/generic/vid_holder.png" alt="html5 video error" width="640" height="360" /></a> 
     <p> Your video tag is not supported</p> 
    </video>      
</div>   


    <!-- /video --> 

**Javascript** 
<!-- Video Playlist START --> 

var video; 
var playlist; 
var tracks; 
var current; 


init(); 
function init(){ 
    current = 0; 
    video = $('#video'); 
    playlist = $('#playlist'); 
    tracks = playlist.find('li a'); 
    len = tracks.length - 1; 
    video[0].volume = .60; 
    video[0].play(); 
    playlist.find('a').click(function(e){ 
     e.preventDefault(); 
     link = $(this); 
     current = link.parent().index(); 
     run(link, video[0]); 
    }); 
    video[0].addEventListener('ended',function(e){ 
     current++; 
     if(current == len){ 
      current = 0; 
      link = playlist.find('a')[0]; 
     }else{ 
      link = playlist.find('a')[current];  
     } 
     run($(link),video[0]); 
    }); 
} 
function run(link, player){ 
     player.src = link.attr('href'); 
     par = link.parent(); 
     par.addClass('active').siblings().removeClass('active'); 
     video[0].load(); 
     video[0].play(); 
} 

<!-- Video Playlist END --> 
+0

请尝试http://videojs.com/或http://sublimevideo.net/轻松添加和使用。 我更喜欢videojs。 –

+1

感谢您的建议,我期待使用video.js作为我的备用平台。但我正在构建自己的控件,加载酒吧等,所以我希望我可以得到这个Javascript后备代码工作和操纵我自己的所有HTML5功能。 –

+0

这是一个不错的想法跟上。 –

回答

0
**HTML** 
<!-- /playlist --> 

<div class="span2"> 
<ul id="playlist"> 
    <li class="active"> 
     <a href="disc_content/video/retro_photography_effects/film_burn.mov" rel="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv"/><img src="images/video/image1.jpg" style="margin-bottom:21px;"></a> 
    </li> 

    <li> 
     <a href="disc_content/video/retro_photography_effects/holga.mov" rel="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv" /><img src="images/video/image2.jpg" style="margin-bottom:21px;"></a> 
    </li> 

    <li> 
     <a href="disc_content/video/retro_photography_effects/holga.mov" rel="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv" /><img src="images/video/image2.jpg" style="margin-bottom:21px;"></a> 
    </li> 

    <li> 
     <a href="disc_content/video/retro_photography_effects/holga2.mov" rel="http://www.advancedphotoshop.co.uk/discs/102/ogvs/holga.ogv" /><img src="images/video/image2.jpg" style="margin-bottom:21px;"></a> 
    </li> 
</ul> 
</div> 
<!-- /playlist --> 
<!-- /video -->div class="span9"> 
<video id="video" width="960" height="600" controls="controls" autoplay="autoplay"> 
    <source type="video/mp4" src="disc_content/video/retro_photography_effects/holga.mov" /> 
    <source type="video/ogg" src="http://www.advancedphotoshop.co.uk/discs/101/ogvs/holga.ogv" /> 
    <a href="http://windows.microsoft.com/en-US/internet-explorer/downloads/ie"> <img src="images/generic/vid_holder.png" alt="html5 video error" width="640" height="360" /></a> 
    <p> Your video tag is not supported</p> 
</video>      
</div>  
<!-- /video --> 





//Javascript 
function run(link, player){ 
    $(player).children().eq(0).attr("src",link.attr('href')); 
    $(player).children().eq(1).attr("src",link.attr('rel')); 
    par = link.parent(); 
    par.addClass('active').siblings().removeClass('active'); 
    video[0].load(); 
    video[0].play(); 
} 

我已经改变了你的HTML一点点,然后我已经改变了“的run()”功能,以取代在源代码。

+0

谢谢你的帮助,我真的很感激!不幸的是,我仍然无法将视频加载到Safari中。我正在使用5.1.7版本,如果您没有遇到这个问题,这可能是原因。它似乎在寻找正确的视频,但它不会在视频标签中加载它。 –

+0

它的工作原理....你需要指定mov文件的完整路径尝试用http://trailers.apple.com/movies/independent/thethieves/thethieves-tlr1_480p.mov替换所有的href's –

+0

什么版本的Safari是你使用?我得到最初的视频标签加载第一个视频,但是当我点击不同视频的缩略图时,它不会加载。它只显示控件,没有视频。我尝试用您提供的Apple Trailers链接替换所有的href链接,但仍然没有喜悦:( –