2

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

4

1 回答 1

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 文件。

于 2017-01-13T09:28:11.487 回答