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!
1 Answer
1
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.