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

Unity WebGL: why using downloaded Mp3 or OGG file, audio can't be played?

我需要从 URL 下载音频(OGG、Mp3 或 wav)并播放。

在编辑器中运行良好,在独立构建中也是如此。

但在 WebGL 构建中没有..我遇到任何错误或(取决于格式)这个:

Streaming of 'mpeg' on this platform is not supported UnityEngine.Networking.DownloadHandlerAudioClip:GetContent(UnityWebRequest)

我的代码:

//这里的音频是根据audioURL下载的 ... WWW 数据 = new WWW(audioURL);产生 return 数据; AudioClip downloadedClip = data.GetAudioClipCompressed(false, AudioType.OGGVORBIS) as AudioClip; 如果(下载剪辑!= null) { _audio.clip = 下载剪辑; } ...

    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 时,错误(也在编辑器中)是:

Streaming of 'mpeg' on this platform is not supported UnityEngine.Networking.DownloadHandlerAudioClip:GetContent(UnityWebRequest)

Unity文档提到浏览器应该原生支持音频格式,你可以从这里查看支持状态link:

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

或者直接使用音频标签检查文件。

我之前测试过,ogg 适合 chrome 和 firefox,mp3 适合 safari

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

现在它可以毫无问题地处理 MP3。

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

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