【发布时间】:2016-03-19 00:17:56
【问题描述】:
我正在构建一个音频播放器,它需要能够播放构建时不可用的磁盘中的文件(以便用户可以放入自己的音乐)。 OGG/WAV 文件很好,我需要同时支持 Windows 和 OSX。我试过使用WWW 类:
using UnityEngine;
using System.Collections;
using System.IO;
public class LoadAudio : MonoBehaviour
{
AudioSource audioSrc;
// Use this for initialization
void Start()
{
if(audioSrc == null) audioSrc = new AudioSource();
StartCoroutine(LoadTrack(Path.Combine(Application.streamingAssetsPath, "Track.ogg")));
}
IEnumerator LoadTrack(string filename)
{
var www = new WWW(filename);
while(www.progress < 0.2)
{
Debug.LogFormat("Progress loading {0}: {1}", filename, www.progress);
yield return new WaitForSeconds(0.1f);
}
var clip = www.GetAudioClip(false, true, AudioType.OGGVORBIS);
audioSrc.clip = clip;
audioSrc.Play();
}
// Update is called once per frame
void Update()
{
}
}
但是,当我运行此程序时,我的调试日志消息打印出几次进度为 0,然后我收到一个在控制台中看不到的错误。在编辑器日志中,我可以看到这个错误:
Error: Cannot create FMOD::Sound instance for resource D???? (Operation could not be performed because specified sound/DSP connection is not ready. )
UnityEngine.WWW:GetAudioClipInternal(Boolean, Boolean, Boolean, AudioType)
UnityEngine.WWW:GetAudioClip(Boolean, Boolean, AudioType) (at C:\buildslave\unity\build\artifacts\generated\common\runtime\UtilsBindings.gen.cs:334)
<LoadTrack>c__Iterator0:MoveNext() (at Assets\LoadAudio.cs:27)
此错误看起来与Unity bug report 中提出的错误相似,但据说它已在 5.3.0 版本中修复,而我正在使用 5.3.4。
假设这不是 Unity 中的错误,我做错了什么?如果这是一个错误,那么有人知道解决方法吗?
编辑:我向 Unity 提交了一份错误报告,他们确认他们已经重现了该错误,但可能需要很长时间才能修复。因此,我希望有一种解决此问题的方法。
【问题讨论】:
-
不相关 - 如果音频是音效等,这只是关于 Unity 的一件小事,它可能与您相关:碰巧您不能 loop mp3在统一中,你只能loop wav 或 ogg