YouTube iFrame API:以编程方式播放本机?

时间:2014-09-16 17:28:47

标签: javascript iframe youtube

我正试图通过JS以编程方式播放YouTube视频(在iFrame中)。以下是我用来以编程方式播放YouTube视频的代码:

iframe.postMessage('{"event":"command","func":"playVideo","args":""}', '*');

但是,在支持YouTube原生播放功能的设备中,iFrame中的视频会变成黑屏,并且无法打开原生视频播放器。

如何在可能的情况下使用iFrame API以编程方式原生播放视频?

2 个答案:

答案 0 :(得分:5)

我强烈建议您查看Youtube Iframe播放器API。 https://developers.google.com/youtube/iframe_api_reference#Playback_controls

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

function onPlayerReady(event) {
  event.target.setVolume(100);
  event.target.playVideo();
}

答案 1 :(得分:1)

如果您想在加载视频时自动播放,请在JS中使用此属性:“autoplay:1”。更多信息:https://developers.google.com/youtube/player_parameters#autoplay

如果使用“onReady”事件,则必须检测设备是否允许自动播放,而iOS则不允许。除非你使用脆弱的UA嗅探,否则这不是一件容易的事情。在这种情况下,使用内置方法更加可靠。

如果您只想以编程方式播放视频,可以使用以下方法:

target.playVideo();

但是,如果没有iOS上的用户交互,您再也无法做到这一点。它只适用于iOS8,早期版本不允许JS触发视频播放。