LoginSignup
3
0

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

Last updated at Posted at 2022-06-09

はじめに

WebGL + iOS環境でのみ動画が閲覧できない問題でハマってしまった際に調べた内容を記録します。

確認項目

1. VideoClip

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

2. CORS(Cross-Origin Resouces Sharing)

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

3. 動画フォーマット

iOSでは同じ拡張子でも再生できないフォーマットが存在しているため、iOS上で再生できる動画なのか確認する必要があります。

詳細は以下のページを参照のこと

※2023/08/27追記
H.264(且つプログレッシブ),音声AACのmp4ファイルだと再生できる傾向にあります。

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に設定しておくこと。
AudioOutputModeはNoneの方が良いです。
※音声を出したい場合は音声ファイルと動画ファイルは別で保管して読み込みましょう。

9. HTMLからVideoタグのテクスチャを受け取る

Videoコンポーネントを使わずに、jslib経由でテクスチャを受け渡しすることで動画再生させることも可能です。
以下のリポジトリをご参照下さい。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0