【问题标题】:Youtube - Is it possible to pass a value from state for the autoplay value (React JS)Youtube - 是否可以从状态中传递一个值作为自动播放值(React JS)
【发布时间】: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 || {},
        }
      });

【问题讨论】:

标签: javascript youtube youtube-api


【解决方案1】:

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

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

【讨论】:

  • 好声音,谢谢,我会看看这是否有帮助!
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2021-01-11
    • 1970-01-01
    相关资源
    最近更新 更多