youtube - 如何将新ID传递给YouTube播放器(以自动播放第二个视频?)

标签 youtube youtube-javascript-api

我正在尝试创建一个页面

  • (从ID数组中选择一个随机视频-我有ID,并且可以选择它们)
  • 播放该视频
  • 播放另一个随机视频(获取另一个ID

  • 我遇到的问题是将一个不同的ID传递给一个已经存在的youtube播放器。

    所以当我有这样的事情:
    <div id="player"></div>
    
    <script src="http://www.youtube.com/player_api"></script>
    
    <script>
    
    // create youtube player
    var player;
    function onYouTubePlayerAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: 'zmr2I8caF0c',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
    }
    
    // autoplay video
    function onPlayerReady(event) {
        event.target.playVideo();
    }
    
    // when video ends
    function onPlayerStateChange(event) {        
        if(event.data === 0) {            
            event.target.playVideo();
            //how do I pass a new ID here ^
        }
    }
    

    如何将新ID传递给event.target.playVideo()?我可以创建一个将ID作为参数并以某种方式传递它的函数吗?

    最佳答案

    弄清楚了。

    <div id="player"></div>
    
    <script src="http://www.youtube.com/player_api"></script>
    
    <script>
    
        var videos = [
          '3H3odKtfrTo',
          'BxjMGiN0jJY',
          'iGC9n0NAvDU'
        ]
    
    
        var index=Math.floor(Math.random() * videos.length);
    
        // create youtube player
        var player;
        function onYouTubePlayerAPIReady() {
            player = new YT.Player('player', {
              height: '390',
              width: '640',
              videoId: '9yT7KcHCrRY',
              events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
              }
            });
        }
    
        // autoplay video
        function onPlayerReady(event) {
            event.target.playVideo();
        }
    
        function playNewVideo(id){
          player.loadVideoById(videos[index]);
          event.target.playVideo();
          playNewVideo(randomID)
        }
    
        // when video ends
        function onPlayerStateChange(event) {        
            if(event.data === 0) { 
              //generate new random number
              index=Math.floor(Math.random() * videos.length);
              playNewVideo();
            }
        }
    
    </script>
    

    关于youtube - 如何将新ID传递给YouTube播放器(以自动播放第二个视频?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31756310/

    相关文章:

    javascript - 如何获取嵌入的 YouTube 视频以自动播放建议的视频?

    php - 从字符串中用PHP建立YouTube链接以外的链接

    python - Webkit/Python/GTK 应用程序中的 Youtube

    wordpress - API 搜索本地热门视频

    javascript - Youtube - 检查视频何时加载

    youtube - 验证 YouTube channel 所有权

    javascript - Firefox 扩展加载

    javascript - Rails 和 YouTube API : Issues loading iframe

    youtube - 有没有一种方法可以在一个API调用中搜索多个Youtube channel

    javascript - Youtube iframe API - 安卓全屏