jquery - 动态添加/控制 vimeo 嵌入

标签 jquery embed vimeo froogaloop

我陷入困境,确实需要一些帮助。

我正在尝试在页面上动态添加 vimeo 嵌入。页面加载视频的静止图像,当单击静止帧时,它会淡出并开始播放嵌入的视频。这只是一种按照我们想要的方式制作我们自己的播放按钮的简单方法,无需 vimeo 加载栏和按钮位于其顶部。第一次做到这一点不是问题。

但是,视频下方有一个缩略图列表,当用户单击缩略图时,页面顶部的视频和静止帧必须交换并替换为新的视频和帧。它必须具有相同的功能。因此,当用户单击该帧时,它就会淡出,并在其后面播放新视频。

我试图在每次单击缩略图时动态地执行此操作。我将视频 ID 作为缩略图的 attr 。我可以把所有东西都换掉,但是当单击静止帧时我无法让它们播放。所以我相信这与 vimeo 的 api 有关,但我似乎无法弄清楚。

看一下这里的代码,如果您发现问题所在,请告诉我...

/*Load videos into top container when thumbnail is clicked....*/
        $('.thumb').click(function(){
            theID = $(this).attr('id');
            $('#topImage').attr('src','<? echo site_url();?>/video_still_frame.jpg');
            $('#topImage').show();
            $('#embedContainer').html("<iframe id='player_"+theID+"' src='http://player.vimeo.com/video/"+theID+"?autoplay=0&api=1&player_id=player_"+theID+"' width='833' height='474' frameborder='0' webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>");
            clearPlayer();
            createPlayer(theID);
            $('#embedContainer').hide();

        });


    function clearPlayer(){
        iframe='';
        player='';
        status='';  
    }

    /*VIMEO API*/
    function createPlayer(idToUse){
        alert(idToUse);
        var iframe = $('#player_'+idToUse)[0],
            player = $f(iframe),
            status = $('.status');
            alert('playerCreated');

        // When the player is ready, add listeners for pause, finish, and playProgress
        player.addEvent('ready', function() {
            status.text('ready');
            player.addEvent('pause', onPause);
            player.addEvent('finish', onFinish);
            player.addEvent('playProgress', onPlayProgress);
            alert('add listeners');
        });

        // Call the API when a button is pressed    
        $('#topImage, #play').click(function(){
            player.api('play'); 
            alert('play video');
        });

        function onPause(id) {
            status.text('paused');
        }

        function onFinish(id) {
            status.text('finished');
        }

        function onPlayProgress(data, id) {
            status.text(data.seconds + 's played');
        }

}   

    /*Run once on page load */
    createPlayer('123456789');  

最佳答案

我不是专家,但也许是这样的:http://jsfiddle.net/MAhE6/

var player = $f(document.getElementById('player'));
  player.addEvent('ready', function() { 
  player.api('play');
});


$("#1").click(function() {
  $iframeSRC = "http://player.vimeo.com/video/65520135?api=1&player_id=player";  
  $("#player").attr("src",$iframeSRC);
});

$("#2").click(function() {
  $iframeSRC = "http://player.vimeo.com/video/65511705?api=1&player_id=player";  
  $("#player").attr("src",$iframeSRC);
});

$("#3").click(function() {
  $iframeSRC = "http://player.vimeo.com/video/65448540?api=1&player_id=player";  
  $("#player").attr("src",$iframeSRC);
});

关于jquery - 动态添加/控制 vimeo 嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620637/

相关文章:

css - vimeo 全窗口大小嵌入

youtube - Plyr媒体播放器不会显示Vimeo,也不会切换Youtube隐藏字幕

javascript - 如何重新组织 json 数据?

javascript - 无法从选择下拉菜单中重定向页面

javascript - 在 IE(7+) 中嵌入音频,使用 javascript 静音和取消静音功能

javascript - 你如何在 discord.js 中制作嵌入页面

html - 如何对我嵌入的 youtube 视频进行 chromecast?

html5-video - 强制Vimeo HTML5视频嵌入

javascript - iframe 中的非阻塞文件上传

javascript - 在 mocha 测试报告器中使用 ajax-post 失败