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
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