获取播放器的当前状态(Youtube API)

Đặn*_*ung 3 youtube youtube-javascript-api

有没有函数可以获取 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
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

dCr*_*tal 5

# 通过 onStateChange

\n\n

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

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

示例:

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

# 通过 getPlayerState()

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

可能的值为getPlayerState()

\n\n
    \n
  • -1 \xe2\x80\x93 未启动
  • \n
  • 0 \xe2\x80\x93 结束
  • \n
  • 1 \xe2\x80\x93 播放中
  • \n
  • 2 \xe2\x80\x93 已暂停
  • \n
  • 3 \xe2\x80\x93 缓冲
  • \n
  • 5 \xe2\x80\x93 提示
  • \n
\n