将功能限制为 1 次执行 youtube 播放器 api

Limit function to 1 execution youtube player api

所以基本上我嵌入了一个不应该自动播放的视频,播放时静音,代码工作正常但我只希望它 运行 onStateChange 函数一次,否则每当你 play/pause video 它将视频静音。有谁知道如何将该功能限制为单次执行?非常感谢帮助:)

function onYouTubeIframeAPIReady() {
    player = new YT.Player('video-placeholder', {
        videoId: 'sAhYEfQ1168',
        playerVars: {
            'autoplay': 0,
            'controls': 0,
            'autohide': 1,
            'wmode': 'opaque',
            'showinfo': 0,
            'loop': 1,
            'fs':0,
            'rel':0
        },
        events: {
           'onReady': onPlayerReady
        }
    });

}

function onPlayerReady(event) {
    player.mute();
}

您可以将 player.events 对象的 onReady 属性 设置为 nullonPlayerReady 函数

的最后一行
function onPlayerReady(event) {
    player.mute();
    player.events.onReady = null;
}

似乎"onStateChange"使用了以下状态:

-1 (unstarted)
0 (ended)
1 (playing)
2 (paused)
3 (buffering)
5 (video cued)

文档:https://developers.google.com/youtube/iframe_api_reference?hl=de

a数据为“-1”的事件似乎只在第一个运行上执行了一次。

这是一个例子:

http://jsfiddle.net/w4d6t32m/

如果您只想将视频静音,您还可以查看 "onReady" 事件。