我正试图通过JS以编程方式播放YouTube视频(在iFrame中)。以下是我用来以编程方式播放YouTube视频的代码:
iframe.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
但是,在支持YouTube原生播放功能的设备中,iFrame中的视频会变成黑屏,并且无法打开原生视频播放器。
如何在可能的情况下使用iFrame API以编程方式原生播放视频?
答案 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触发视频播放。