gpt4 book ai didi

c# - Unity3D 从磁盘流式传输音频文件

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:14 27 4
gpt4 key购买 nike

我正在构建一个音频播放器,它需要能够播放构建时不可用的磁盘文件(以便用户可以放入自己的音乐)。 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 提交了错误报告,他们确认他们已经重现了该错误,但可能需要很长时间才能修复。因此,我希望能找到解决此问题的方法。

最佳答案

在文件路径的开头添加 file:// 解决了这个问题。

关于c# - Unity3D 从磁盘流式传输音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016464/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com