Unity WebGL:为什么使用下载的Mp3或OGG文件不能播放音频?

时间:2019-05-15 15:12:35

标签: c# unity3d unity-webgl

我需要从URL下载音频(OGG,MP3或WAV)并播放。

在Editor中工作正常,也可以独立构建。

但不是在WebGL构建中。.我遇到任何错误或(取决于格式):

  

不支持在此平台上流式传输“ mpeg”   UnityEngine.Networking.DownloadHandlerAudioClip:GetContent(UnityWebRequest)

我的代码:

//这里音频是根据audioURL下载的 ...       WWW数据=新的WWW(audioURL);收益率数据;             AudioClip downloadClip = data.GetAudioClipCompressed(false,AudioType.OGGVORBIS)作为AudioClip;             如果(downloadedClip!= null)             {                 _audio.clip = downloadedClip;             } ...

    public void PlayAudio() {
        // Here clip is play
                if (_audio.clip != null && _audio.isPlaying == false)
                    _audio.Play();
                else
                    Debug.Log("Background music not present!");
                _audio.loop = true;
    }

To download clip i've used also (instead first code part):


     using (UnityWebRequest www2 = UnityWebRequestMultimedia.GetAudioClip(audioURL, AudioType.OGGVORBIS))
            {
                yield return www2.SendWebRequest();

                if (www2.isHttpError)
                {
                    Debug.Log(www2.error);
                    LogAdd(www.error, true);
                }
                else
                {
                    AudioClip downloadedClip = DownloadHandlerAudioClip.GetContent(www2);                
                    _audio.clip = downloadedClip;
                }
            }

由于某些原因,webgl中的音频无法播放。

编辑1:上传MP3时,错误(也在编辑器中)是:

  

不支持在此平台上流式传输“ mpeg”   UnityEngine.Networking.DownloadHandlerAudioClip:GetContent(UnityWebRequest)

3 个答案:

答案 0 :(得分:1)

Unity文件提到音频格式应由浏览器本地支持,您可以从此链接检查支持状态:

https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats

或者只是使用音频标签来检查文件。

正如我之前测试的,ogg适合chrome和firefox,而mp3适合safari

答案 1 :(得分:0)

我解决了升级到2018.4的问题。

现在它可以在MP3上正常使用。

答案 2 :(得分:0)

“ Mp3”是MPEG-3的缩写;实际上,如果您查看Unity的AudioTypes,它会将MPEG AudioType明确定义为“ MP2 / MP3 MPEG”。

所以基本上:尝试使用非mp3文件。