1

我有一个有多个图像的React应用程序。点击图片后,会打开一个模式,通过iframe api加载YouTube视频。我使用这个加载视频I帧https://www.npmjs.com/package/react-youtube反应 - 通过点击事件在手机上自动播放视频

模态

有条件添加和使用状态modalVisible拆下来的DOM:真/假。

{this.state.modalVisible ? <div className="Modal"><YouTube videoId="2g811Eo7K8U" onReady={this._onReady} /></div> : null} 

这是伟大的,因为如果需要使用VS里面装已经在页面加载视频中的传统模式,然后显示块在需要时显示模式只会加载视频。

但是,在移动视频无法自动播放(https://developers.google.com/youtube/iframe_api_reference#Mobile_considerations),所以与传统的隐藏/显示预装模式我可以调用一个功能,当图像被点击显示模式,并使用event.target.playVideo();播放视频本质上自动播放它。但是,当我通过先加载视频到模态图像被点击视频时做呼吁onready功能时视频一旦加载event.target.playVideo();不起作用:

_onReady(event) { 
    // access to player in all event handlers via event.target 
    event.target.playVideo(); 
} 

有什么办法来加载视频然后自动播放点击功能,而不会在点击事件发生之前加载视频?

回答

0

不,没有真正的用户点击没有办法启动视频(如果您以编程方式触发点击,浏览器会明白它不是真正的用户操作)。

YT iframe必须在DOM中才能在用户单击图像时启动视频。