【问题标题】:Get current state of Player (Youtube API)获取播放器的当前状态(Youtube API)
【发布时间】:2017-04-02 05:54:04
【问题描述】:

是否有任何函数可以获取 Youtube API 播放器的当前状态? 如果播放器当前状态为 1(正在播放),我想编写一个函数来运行命令,但我在参考页面上找不到任何内容。
p/s:我已经知道 onStageChange,我需要检查当前状态 我的创建播放器代码:

var player;
    window.onYouTubeIframeAPIReady = function () {
        console.log('onYouTubeIframeAPIReady');
        player = new YT.Player('video_player', {
            // playerVars: { 'enablejsapi':1,'autoplay':0,'controls':0,'rel':0,'showinfo':0,'egm':0,'showsearch':0,'modestbranding':1,'iv_load_policy':3,'disablekb':0,'loop':0},
            events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange,
                'onError': onPlayerError
            }
        });
    }

【问题讨论】:

    标签: youtube youtube-javascript-api


    【解决方案1】:

    # 通过 onStateChange

    API 触发事件以通知您的应用程序有关内置播放器的更改。 API 将为以下每种状态类型传递一个唯一的事件对象:

    • YT.PlayerState.ENDED 0
    • YT.PlayerState.PLAYING 1
    • YT.PlayerState.PAUSED 2
    • YT.PlayerState.BUFFERING 3
    • YT.PlayerState.CUED 5

    例子:

       ...
    
       onPlayerStateChange(event) {
    
            if (event.data == YT.PlayerState.ENDED) {               
                console.log("Video Ended");
            }
    
            if (event.data == YT.PlayerState.PLAYING) {             
                console.log("Video Playing");
            }
    
            if (event.data == YT.PlayerState.PAUSED) {              
                console.log("Video Paused");
            }
    
            if (event.data == YT.PlayerState.BUFFERING) {               
                console.log("Video Buffering");
            }
    
            if (event.data == YT.PlayerState.CUED) {                
                console.log("Video Cued");
            }
    
        },
    
        ...
    

    # 通过 getPlayerState()

      var player;
    
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '360',
          width: '640',
          videoId: 'M7lc1UVf-VE',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }
    
      console.log(player.getPlayerState());
    

    getPlayerState() 的可能值为:

    • -1 – 未发起
    • 0 – 结束
    • 1 – 播放中
    • 2 – 暂停
    • 3 – 缓冲
    • 5 – 提示

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-19
      • 2022-11-07
      • 1970-01-01
      • 2020-05-11
      • 2021-08-31
      • 1970-01-01
      • 2015-02-16
      相关资源
      最近更新 更多