iOS の Safari には、現在の JavaScript の実行がユーザー アクション (通常はクリック イベント) で開始された場合にのみメディアの再生を許可するポリシーがあります。
ただし、起動するボタンにハンドラーをアタッチしsomeYoutubePlayer.playVideo()、ユーザーがこのボタンをクリックすると、実際には次のようになります。
clickメイン ページ ウィンドウでイベントが発生するplayVideoメソッドはYouTubeでaをpostMessage起動します<iframe />- iframe内で
messageイベントが発生します messageイベントのハンドラーが起動しますdomVideo.play()が、現在のイベントはもはやclickでmessageはなく、内部iframeウィンドウにいるため、失敗します。
これを克服し、外部クリックイベントから再生をトリガーする方法を知っている人はいますか?