UnityWebRequest.GetAudioClip 返回空 AudioClip

问题描述 投票:0回答:1

我只是想简单地使用本地磁盘上的文件更改 AudioSource 的 AudioClip 内容。

该文件可以作为 AudioClip 导入到 Unity 中并且播放没有问题,但是当使用

UnityWebRequest.GetAudioClip
加载时,绝对不会出现回声;当检查音频源时,声波完全平坦,但如果我单击声波,音频仍然会播放。

这是我使用的代码:

    IEnumerator GetAudioClip()
    {
        string path = "C:/path_to_audio_file/audio.wav";
        using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip($"file://{path}", AudioType.WAV))
        {
            yield return www.SendWebRequest();

            tmpAudio = DownloadHandlerAudioClip.GetContent(www);
            audioSource.clip = tmpAudio;
            audioSource.Play();
        }
    }
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(GetAudioClip());
    }

我可能做错了什么,如果是,我该如何解决?

我尝试过的:

  • 将音频转换为.ogg
  • audioSource.clip = tmpAudio
    部分放在协程之外
unity-game-engine
1个回答
0
投票

路径可能是问题,因为它使用反斜杠。您可以将它们替换为正斜杠,如下所示:

using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip($"file:///{path.Replace("\\", "/")}", AudioType.WAV))
© www.soinside.com 2019 - 2024. All rights reserved.