0

我有一个像这样的视频网址对象:

  var urls = new Object();

  urls['cail_ivt'] = {'mp4_url': http://link_to_.mp4', 'webm_url': 'http://link_to_.webm', 'flv_url': 'http://link_to_.flv' };

  urls['cail_ty'] = {'mp4_url': 'http://link_to_.mp4', 'webm_url': 'http://link_to_.webm', 'flv_url': 'http://link_to_.flv' };

  urls['cail_1'] = {'mp4_url':       'http://link_to_.mp4', 'webm_url': 'http://link_to_.webm', 'flv_url': 'http://link_to_.flv' };

  urls['cail_2'] = {'mp4_url': 'http://link_to_.mp4', 'webm_url': 'http://link_to_.webm', 'flv_url': 'http://link_to_.flv' };

  urls['cail_3'] = {'mp4_url': 'http://link_to_.mp4', 'webm_url': 'http://link_to_.webm', 'flv_url': 'http://link_to_.flv' };


_V_.options.flash.swf = 'http://static_server/video-js.swf';

我有一堆锚标签,它们的 id 是 urls 对象的关键:

然后我写了一个小 js 来绑定这些锚点击,并将适当的视频加载到播放器 div 中并显示它。它从不显示,也不播放。这似乎只发生在 ie9 中。

    $('ul a.play_button').click(function() {

    var campaign_id = $(this).attr('id');

    var mp4_url  = urls[campaign_id].mp4_url;
    var webm_url = urls[campaign_id].webm_url;
    var flv_url  = urls[campaign_id].flv_url;   

    var video_player = '<video id="video" class="video-js vjs-default-skin" controls preload="none" width="640" height="360" poster="" data-setup="{}"> '
                                   + '<source id="mp4"   src="'+mp4_url+'" type="video/mp4" />'
                                   + '<source id="flash" src="'+flv_url+'" type="video/flv" />'
                                   + '<source id="webm"  src="'+webm_url+'" type="video/webm" />'
                                   + '</video>';
    $('#player').empty();
    $('#player').html(video_player);                                
});

不确定这是否是在播放器中处理多个视频的最佳方式,但这是我想出的。非常感谢讨论和帮助。

4

1 回答 1

0

类似于我与 videojs 的其他问题。我必须为播放器声明一个变量集:

 var mplayer = _V_('video');

当我在同一页面上加载其他视频时,我只需暂停播放器,将其倒回到视频的开头并设置新的视频源:

 mplayer.pause();
 mplayer.currentTime(0);
 mplayer.src([{ type: "video/mp4", src: mp4_url },{ type: "video/webm", src: webm_url },{ type: "video/flv", src: flv_url }]);
于 2012-11-21T17:34:34.327 回答