Youtube-是否可以为自动播放值(React JS)从state传递一个值



我的一个要求是在视图中自动播放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 || {},
}
});

您可以包装整个组件,然后仅在视图中渲染它,然后autoplay将始终设置为true

否则,您需要以编程方式触发播放器实例上的播放方法,因为它已经创建,autoplay仅用于初始初始化,而不是响应。

根据上面的评论,我通过在视图中有条件地渲染视频组件来解决这个问题。

相关内容

最新更新