MediaElement.js更改视频源onclick

时间:2011-04-14 17:34:31

标签: mediaelement.js

在MediaElement.js中,我试图制作一个“多”视频播放器。或多或少我将根据用户点击的内容缩略图更改视频来源。

我已经使用

成功完成了HTML5源代码

<img src="http://mydomain.com/mysouceimage.jpg" style="width:100px; height:75px;" onclick="document.getElementsByTagName('video')[0].src = '/media/build/BTBW.m4v';" />

<img src="http://mydomain.com/mysouceimage-2.jpg" style="width:100px; height:75px;" onclick="document.getElementsByTagName('video')[0].src = '/media/build/myVideo-2.m4v';" />

但这仅适用于HTML5播放器,而不适用于Flash。 我正在使用基本的视频标签,让mediaelement.js做后备工作。 我认为像上面的例子那样改变来源会起作用,但事实并非如此。

我希望视频停止并在选择下一张图像时切换到下一张图像,反之亦然,使用Flash播放器后退。

有一种简单的方法可以做到这一点。我没有看到太多关于如何使用Mediaelement.js动态切换视频的文档。

任何建议都将不胜感激。

6 个答案:

答案 0 :(得分:20)

如果您使用带有API的播放器,则可以使用“setSrc”方法。

示例:

<script>
var player = new MediaElementPlayer('video', {
    defaultVideoWidth: 960,
    defaultVideoHeight: 410,
    features: ['playpause', 'progress', 'current', 'duration', 'volume', 'fullscreen'], 
    success: function (mediaElement, domObject) {}
});

// ... sometime later

player.setSrc('urlToVid.mov');
player.play();
</script>

答案 1 :(得分:3)

您不能只更改视频文件的来源。您必须删除mejs div,创建一个新的html5视频,然后再次调用mediaelement。通过重复此过程,您可以根据需要为每个视频生成新的闪回后备。

答案 2 :(得分:1)

在我更改src之后,我可以加载媒体对象..就像这样:

var player = new MediaElementPlayer('#vid'/*, Options */);        

$('#the_url').on('keypress',function(e){    
    if (e.which == 13) {
        player.pause();
        player.setSrc($('#the_url').val());        
        player.media.load();
    }
});

答案 3 :(得分:1)

老帖子 - 我想加上我的决议

注意:调用load()也会自动播放视频。此代码还假定您的输入中已有值,并且它是单击的锚标记的子项。

$('#idThatSwitches').click(function (e) {
    // get youTubeId
    var youTubeId = $(this).find('input[type="hidden"]').val();

    // switch out player's video source and reload
    var player = $('#idOfYourPlayer')[0].player.media;
    player.setSrc('http://youtube.com/watch?v=' + youTubeId);
    player.load();
});

答案 4 :(得分:0)

由于我花了很多时间才弄清楚,我会发布我在这里发现的内容。我使用了MediaElementJS Wordpress插件。要更改源,您可以像这样获得对媒体元素播放器的引用:

$('#wp_mep_1')[0].player.media

这样做的原因是因为在WordPress中,插件没有为您提供调用.load().play()等函数的变量。所以,我终于弄清楚你是如何获得插件插入的播放器的引用。

所以改变src:

var player = $('#wp_mep_1')[0].player.media;
if(player.setSrc)
    player.setSrc('xyz.mp4');

答案 5 :(得分:0)

我也会轮流重新提出一个旧问题。

我不确定MediaElement插件中是否有任何改变,但上述解决方案都没有为我100%工作,有些工作部分工作,有些工作根本没用。我面临的一些问题是,如果没有先前的视频加载和播放,我只能将视频加载到元素中,这对我来说没有用,因为它本来是用作播放列表选择器。另一个问题是无论出于什么原因,视频都不会一直加载,而只是停留几秒钟。

但是,截至2015年10月,以下情况对我有用。

<a href="http://www.youtube.com/watch?v=VIDEO-ID" onclick="
  playerObject.pause();
  playerObject.setSrc(this.href);
  playerObject.media.load();
  playerObject.load();
  return false
">
<img src="yourimg">
</a>

我喜欢使用A tage帮助我格式化这样的可点击对象,同时保留在新窗口/标签功能中打开。