【发布时间】:2021-06-30 13:07:47
【问题描述】:
我的一个要求是自动播放 youtube 视频一次,但是,onPlayerReady() 函数似乎没有及时收到道具,因此始终默认为 false。我尝试了多种不同的方法,例如在 useEffect 中收听该值并尝试重新渲染视频,但没有任何成功。
以前有没有人遇到过类似的问题?还是我需要挂钩到不同的事件来更新?
我会附上一些示例代码以供视觉参考,如果需要添加更多代码来帮助解决问题,请告诉我!
const initPlayer = new YT.Player(videoId, {
height,
width,
videoId: youtubeId,
frameborder: '0',
playerVars: {
modestbranding: 1,
rel: 0,
controls: 0
mute: 1
autoplay: autoplayWhenInView ? 1 : 0 // Would like to use this value which is passed from a parent component
},
events: {
'onReady': onPlayerReady, // autoplayWhenInView is false when it's actually true
'onStateChange': onPlayerStateChange || {},
}
});
【问题讨论】:
-
Chrome(可能还有其他浏览器)对允许自动播放视频的时间进行了更改。请参阅developers.google.com/web/updates/2017/09/…(虽然我不确定这是否会对您的用例产生影响。)
标签: javascript youtube youtube-api