Loading external mp3 on webGL
Hey!
I am trying to load external mp3 file when using WebGL I am getting:
Streaming of 'mp3' on this platform is not supported
Here is the code:
IEnumerator LoadAudio()
{
WWW www = new WWW ("file://"+audioPath);
yield return www;
if (string.IsNullOrEmpty (www.error)) {
audioSource.clip = www.GetAudioClipCompressed (false, AudioType.MPEG);
audioSource.Play ();
} else {
Debug.LogError (www.error);
}
}
I am totally fine with not streaming it, can read the whole thing before playing. Any pointers?
Thanks!
Answer by Bunny83 · Jun 03, 2016 at 03:24 AM
No. Unity doesn't support mp3 at runtime on any platform except mobile since mobile devices have a hardware MPEG decoder. On mobile only streaming mp3s are supported as the data can't be processed by the engine itself. The Untiy engine doesn't have a mp3 decoder. The only formats Unity can read at runtime are: ogg, wav, XM, IT, MOD and S3M. Just have a look at the documentation.
If you want to be able to load mp3s at runtime, you would need a third party mp3 decoder which is 100% managed code, otherwise it can't be crosscompiled to JS. One example is this .NET port of JavaLayer released under LGPL. I once used it in a webplayer build in Unity. This library can decode mp3 data and convert it to PCM samples which you can feed to Unity's audiosystem.
Your answer
![](https://koobas.hobune.stream/wayback/20220612082149im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
AudioClip.GetData not working in WegGL Build. 2 Answers
Audio not playing when destroying a GameObject. 1 Answer
How to make audio play at once. 1 Answer
Cracking at end of audio? 0 Answers
Playing numerous audio files in a row when spawning? 2 Answers