在 Android Kitkat 上模拟鼠标点击 Youtube 视频
Simulate mouse click on Youtube videos on Android Kitkat
Youtube 允许在 iframe 代码的帮助下嵌入用户创建的播放列表。我想将它们嵌入到要在 Android (Kitkat 4.4) 电视盒硬件上播放的网页中。但是,它需要用户先点击视频。
我发现 Apple iOS 和 Android 在大多数移动平台上禁用自动播放以避免糟糕的用户体验
但是,是否可以使用 Jquery 或纯 JS 解决方案(首选)模拟用户点击 iframe。像这样:
function myFunction() {
setTimeout(function() { ("#myiframe").triggerHandler('click'); },3000)
};
如果有人能帮助我,我将不胜感激,因为这个功能对我的目的至关重要,我进行了广泛的搜索,但找不到合适的解决方案。
谢谢
dkj
早上好,dkjain,
据我在 Youtube Player API docs 中所读,有几个事件在播放器加载后立即触发,其中一个应该使用的事件是 onReady()
事件。
下面是一些关于如何自动播放单个视频或播放列表的更新代码:
HTML:
<div id="player"/>
将是 Youtube 播放器的占位符
播放播放列表(playerVars
):
JS:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
playerVars: {
'listType': 'playlist',
'list': 'PLi5VEqNXXQjVJ4-xZb92wTUawkSQRal0u'
},
events: {
'onReady': onPlayerReady
}
});
}
window.onYouTubeIframeAPIReady = onYouTubeIframeAPIReady;
// as soon as the player is loaded, start the playback
function onPlayerReady(event) {
event.target.playVideo();
}
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/iframe_api";
document.head.appendChild(tag);
还有一个autoPlay: 1
playerVar,但是这个在移动平台上似乎不可用:https://developers.google.com/youtube/iframe_api_reference#Mobile_considerations
播放单个视频
JS:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'nhX4rQ79C1A',
events: {
'onReady': onPlayerReady
}
});
}
window.onYouTubeIframeAPIReady = onYouTubeIframeAPIReady;
// as soon as the player is loaded, start the playback
function onPlayerReady(event) {
event.target.playVideo();
}
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/iframe_api";
document.head.appendChild(tag);
JSFiddles 显示以上代码:
单个视频:http://jsfiddle.net/Moonbird_IT/akjpmvpf/
播放列表:http://jsfiddle.net/Moonbird_IT/akjpmvpf/4/(再次更新)
让我知道我们的方向是否正确:-)
Youtube 允许在 iframe 代码的帮助下嵌入用户创建的播放列表。我想将它们嵌入到要在 Android (Kitkat 4.4) 电视盒硬件上播放的网页中。但是,它需要用户先点击视频。
我发现 Apple iOS 和 Android 在大多数移动平台上禁用自动播放以避免糟糕的用户体验
但是,是否可以使用 Jquery 或纯 JS 解决方案(首选)模拟用户点击 iframe。像这样:
function myFunction() {
setTimeout(function() { ("#myiframe").triggerHandler('click'); },3000)
};
如果有人能帮助我,我将不胜感激,因为这个功能对我的目的至关重要,我进行了广泛的搜索,但找不到合适的解决方案。
谢谢 dkj
早上好,dkjain,
据我在 Youtube Player API docs 中所读,有几个事件在播放器加载后立即触发,其中一个应该使用的事件是 onReady()
事件。
下面是一些关于如何自动播放单个视频或播放列表的更新代码:
HTML:
<div id="player"/>
将是 Youtube 播放器的占位符
播放播放列表(playerVars
):
JS:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
playerVars: {
'listType': 'playlist',
'list': 'PLi5VEqNXXQjVJ4-xZb92wTUawkSQRal0u'
},
events: {
'onReady': onPlayerReady
}
});
}
window.onYouTubeIframeAPIReady = onYouTubeIframeAPIReady;
// as soon as the player is loaded, start the playback
function onPlayerReady(event) {
event.target.playVideo();
}
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/iframe_api";
document.head.appendChild(tag);
还有一个autoPlay: 1
playerVar,但是这个在移动平台上似乎不可用:https://developers.google.com/youtube/iframe_api_reference#Mobile_considerations
播放单个视频
JS:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'nhX4rQ79C1A',
events: {
'onReady': onPlayerReady
}
});
}
window.onYouTubeIframeAPIReady = onYouTubeIframeAPIReady;
// as soon as the player is loaded, start the playback
function onPlayerReady(event) {
event.target.playVideo();
}
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/iframe_api";
document.head.appendChild(tag);
JSFiddles 显示以上代码:
单个视频:http://jsfiddle.net/Moonbird_IT/akjpmvpf/
播放列表:http://jsfiddle.net/Moonbird_IT/akjpmvpf/4/(再次更新)
让我知道我们的方向是否正确:-)