5

iOS の Safari には、現在の JavaScript の実行がユーザー アクション (通常はクリック イベント) で開始された場合にのみメディアの再生を許可するポリシーがあります。

ただし、起動するボタンにハンドラーをアタッチしsomeYoutubePlayer.playVideo()、ユーザーがこのボタンをクリックすると、実際には次のようになります。

  1. clickメイン ページ ウィンドウでイベントが発生する
  2. playVideoメソッドはYouTubeでaをpostMessage起動します<iframe />
  3. iframe内でmessageイベントが発生します
  4. messageイベントのハンドラーが起動しますdomVideo.play() が、現在のイベントはもはやclickmessageはなく、内部iframeウィンドウにいるため、失敗します。

これを克服し、外部クリックイベントから再生をトリガーする方法を知っている人はいますか?

4

1 に答える 1