0
Help us understand the problem. What are the problem?

posted at

updated at

【Unity】WebGL + iOSで動画が閲覧できない場合に試してみること

はじめに

WebGL + iOS環境でのみ動画が閲覧できない問題でハマってしまった際に調べた内容を記録します。
特に3Dオブジェクトに対してはVideoPlayer設定のMaterialOverrideで投影可能になるケースが多いのですが、Canvas上でRendererTextureを利用したビデオ再生は解決方法が見つかりませんでした。

デバッグ方法

MacやWindowsのブラウザアプリと同様にデベロッパーツールを利用することができます。
尚、デバッグにはMacが必要になります。

確認項目

1. VideoClip

Unity公式によるとVideoClipからのビデオ再生には対応していませんので、URLを指定する方法で動画を再生することになります。

2. CORS(Cross-Origin Resouces Sharing)

動画を配置しているサーバーの設定で他ドメインのサーバーからのメディアのアクセスをブロックする様に設定されている場合は許可する必要があります。
同じドメインに配置する場合は気にしなくても問題ありません。

3. 動画フォーマット

iOSでは同じ拡張子でも再生できないフォーマットが存在しているため、iOS上で再生できる動画なのか確認する必要があります。
詳細は以下のページを参照のこと

4. JS側のvideoタグの設定

WebGLのVideoコンポーネントがアタッチされたオブジェクトはHTMLのvideoタグが割り当てられるのですが、videoタグの設定によっては動画を再生に影響が出るようです。

Unityでは以下のファイルにvideoタグの設定が記述されているため、以下のサイトと照らし合わせて修正してください。
Unity\Hub\Editor\[Unityバージョン]\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\lib

※関連Fourum

5. 画面タップ

Safariのセキュリティ制約により、一度画面をタップしないと動画を再生することができません。

6. ホスティングサーバーの設定

サーバー側でiOS用サファリで使用されているQuickTimeへの動画配信をブロックしている可能性がある。
.htaccessのファイルを編集することで直るケースもありますが、ホスティングサービスを利用している場合は管理者へ確認が必要です。

7. iPhoneの低電力モード

低電力モード中は動画が自動再生されないようです。

8. VideoPlayer - Mute設定

Safariのセキュリティ制約上、音声が有効な場合ブロックされてしまうため、自動再生したい場合は音声をMuteにする必要がある。
また、AudioOutputModeはDirectOutPutに設定しておくこと。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?