## やりたいこと
WPF上にウェブブラウザを表示し、ローカルにあるYoutubeの動画だけが貼ってあるHTMLを読み込ませます。
そこから、Youtubeの動画の再生位置・再生速度などをWPFのボタンから自由に操作したいと思っています。
問題点
javascriptで記述した、
js
1function startVideo() 2{ 3 player.playVideo(); 4}
のみWPFから正常に動作しません。
-> WPFに配置している、javascriptのstartVideo()を実行させる[動画再生ボタン]
を押しても再生されません。
環境
WPF .NET Framework 4.7.2
Chromium(Cef.Sharp, Cef.Sharp.Core, Cef.Sharp.WPF)
やったこと
- とりあえず、作成しているHTMLをWPFではない通常のブラウザで開き、
[検証]からコンソール画面に
startVideo()
とすると正常に動作しました。
- 再生状況を変えずに、シークバーの位置だけを動かす
player.seekTo()
をwpfのボタン操作から行った場合でもきちんと動作しました。
- WPFのブラウザ(Chromium)上で、
「一度マウスカーソルを使って動画をクリックし再生させた後、もう一度クリックし停止させる。」
この動作を行った後、問題で挙げたWPF上の[動画再生ボタン]を押したところ
問題は生じず、正常に動画が再生されました。
推測
Youtube API公式リファレンスのモバイルの注意事項という項目によると、
Chrome や Safari などのモバイル ブラウザでは、HTML5 <video> 要素を再生するには、ユーザーの操作(プレーヤーをタップするなど)による起動が必要です。以下は、Apple のドキュメントの抜粋です。
「警告: ユーザーが費用負担する携帯電話ネットワーク経由で要求していないダウンロードを防止するために、iOS の Safari では組み込みメディアを自動再生できません。必ずユーザーが自分で再生します。」
この制限があるため、autoplay、playVideo()、loadVideoById() などの関数およびパラメータはすべてのモバイル環境では動作しません。
といったことが書かれているので、今回の事例に関係しているのではと思ったのですが、
wpfはモバイル環境扱いなのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。