我试图在运行时在WebGL构建中将OGG格式的一些声音加载到我的游戏中。我使用WWW类来获取具有" .ogg"的文件。扩展,然后我调用www.audioClip
来获取下载的文件。这适用于其他平台,但在WebGL中失败。
Unity会抛出此错误消息:"流式传输' ogg'在此平台上不支持" 。奇怪,因为我没有尝试流式传输,我尝试显式调用GetAudioClip(false, false, AudioType.OGGVORBIS)
并得到相同的结果。
我已尝试将我的OGG文件转换为AAC(使用M4A和MP4扩展名)并使用www.audioClip
加载(错误,因为它无法确定URL中的文件类型)和www.GetAudioClip(false, false, AudioType.MPEG)
(无错误)但也没有声音)。我在网上看到的最接近解决方案的是使用MP3,但出于许可原因,我不想这样做。
Unity中的WebGL是否仅限于构建到应用程序中的音频资产?
答案 0 :(得分:1)
尝试:
WWW data = new WWW (url); yield return data;
AudioClip ac = data.GetAudioClipCompressed(false, AudioType.AUDIOQUEUE) as AudioClip;
if(ac != null)
{
ac.name = "mySoundFile.ogg";
gameObject.GetComponent<AudioSource> ().clip = ac;
}
else
{
gameObject.GetComponent<AudioSource> ().clip = null;
Debug.Log("no audio found.");
}
使用.ogg文件为我工作。