在运行时将外部OGG文件加载到Unity WebGL内部

时间:2016-08-12 19:20:02

标签: unity5 unity-webgl audioclip

我试图在运行时在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是否仅限于构建到应用程序中的音频资产?

1 个答案:

答案 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文件为我工作。