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 文件。
我需要从 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 文件。