首页 > 解决方案 > Unity WebGL:为什么使用下载的 Mp3 或 OGG 文件,无法播放音频?

问题描述

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

在编辑器中工作正常,并且在独立构建中也是如此。

但不是在 WebGL 构建中。我有任何错误或(取决于格式)这个:

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

我的代码:

// 这里根据audioURL下载音频 ... WWW data = new WWW(audioURL); 收益率返回数据;AudioClip 下载Clip = 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 时,错误(也在编辑器中)是:

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

标签: c#unity3dunity-webgl

解决方案


Unity 文档中提到音频格式应该是浏览器原生支持的,您可以通过以下链接查看支持状态:

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

或者简单地使用音频标签来检查文件。

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


推荐阅读