はじめに
Unity で開発したゲームを WebGL にビルドして、いざ iOS のブラウザ(Chrome/Safari)から実行すると事前に Unity のアセットとしてインポートしていた MP3 ファイルが再生できないという問題が発生したのでそのときの対処法を超絶ザックリと解説します。
今回の検証環境は以下の通りです。
- Unity 2022.3.1f1
- iOS 17.1.1
- Google Chrome 120.0.6099.50
- Safari 17.1.1
結論
結論としては Unity に音声ファイルをインポートするときに MP3 ファイルとしてインポートするのではなく、WAV ファイルとしてインポートしましょう。
ちなみに自分は MP3 ファイルから WAV ファイルへの変換にはファイルコンバーターというサイトを使ってます。

MP3 と WAV の違いは何でしょうか?
自分はこの辺りには全く詳しくないので Vook 様の「【全ての謎が解けるかも?】MP3とWAVの違いを徹底検証しましょう!」から引用させていただきます。
WAV を軽量化したものが MP3 ということですかね。
簡単に言うと、WAVという音源は、圧縮されていない録音した状態と同じ音質を保った形式です。圧縮されていないので音質が良いのですが、ファイルがとても重いと言うデメリットもあります。
【全ての謎が解けるかも?】MP3とWAVの違いを徹底検証しましょう!
それに対して、MP3はWAVでは重すぎる音源ファイルを軽くするためにWAVファイルの中の、人間には聴こえないとされる音のみを取り除きファイルを大幅に軽くしたものです。
ちなみに WebGL 周りはサウンド関係のバグや既知の問題が比較的多いのですが、この点に関しては Unity の公式ページで以下のように説明されています。
WebGL ゲームの開発はサウンド周りに限らず全般的に難しいですよね~
WebGL のオーディオは他のプラットフォームとは異なります。他のプラットフォームでは、オーディオの再生やミキシングを行うために FMOD が内部で使用されています。ですが、WebGL ではスレッドがサポートされておらず、他の方法を取らざるを得ませんでした。そこで Web Audio API を内部ベースとして、ブラウザ側でオーディオの再生とミキシングを実装するようにしました。
WebGL でオーディオの使用
最後に
参考記事
- Audio is not working from a webgl application running on ios mobile browser.
- 【全ての謎が解けるかも?】MP3とWAVの違いを徹底検証しましょう!
- WebGL でオーディオの使用