【发布时间】:2021-11-26 05:05:00
【问题描述】:
目前,同一视频只能自动播放 1 次。
重现:点击 1 个 svg 播放按钮,然后点击 X。
然后第二次点击相同的 svg 播放按钮。
你会发现视频没有自动播放。
如何在代码中修复此问题,以便同一视频可以第二次自动播放?
我会使用autoplay 或player.playVideo(); 让视频第二次播放。
我不确定它会如何工作。
https://jsfiddle.net/2h7dgfe5/
const videoPlayer = (function makeVideoPlayer() {
const players = [];
const tag = document.createElement("script");
tag.src = "https://www.youtube.com/player_api";
const firstScriptTag = document.getElementsByTagName("script")[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function createStopHandler(player) {
const stopButtons = document.querySelectorAll(".exit");
stopButtons.forEach(function stopButtonHandler(buttons) {
buttons.addEventListener("click", function buttonClickHandler() {
player.stopVideo();
});
});
}
function onPlayerReady(event) {
const player = event.target;
player.setVolume(100);
createStopHandler(player);
}
function addPlayer(video, settings) {
const defaults = {
height: 360,
host: "https://www.youtube-nocookie.com",
videoId: video.dataset.id,
width: 640
};
defaults.events = {
onReady: onPlayerReady
};
const playerOptions = combinePlayerOptions(defaults, settings);
const player = new YT.Player(video, playerOptions);
players.push(player);
return player;
}
return {
addPlayer
};
}());
const managePlayer = (function makeManagePlayer() {
const defaults = {
playerVars: {
autoplay: 1,
controls: 1,
disablekb: 1,
enablejsapi: 1,
fs: 0,
iv_load_policy: 3
}
};
【问题讨论】:
-
一旦按下“X”按钮,您是否可以修改代码并检查playback_status? - 我正在查看您的测试代码,但是,我不熟悉“X”按钮代码的位置和作用。我的建议是:按下“X”按钮后,检查视频的状态,然后继续更改其状态或重新启动 iframe。
标签: javascript youtube youtube-api autoplay