话不多说,直接上代码

首先,获取文件夹下面的所有文件路径:

//获取到目录下面所有文件的路径(本路径下只放音乐文件)
public static string[] GetAudiosByPath()
    {

        string path = Application.persistentDataPath + "/Audios/";

        string [] audioClipspath = null;
        if (Directory.Exists(path))
        {
            DirectoryInfo direction = new DirectoryInfo(path);
            FileInfo[] files = direction.GetFiles("*");
            audioClipspath = new string[files.Length];
            for (int i = 0; i < files.Length; i++)
            {
                audioClipspath[i] = files[i].FullName;
            }

        }
        
        return audioClipspath;

    }

接着通过UnityWebRequest 加载音频文件(这里有坑,请注意!!!

private IEnumerator PlayIe(int num)
    {

        UnityWebRequest _unityWebRequest = UnityWebRequestMultimedia.GetAudioClip("file://"+Tools.GetAudiosByPath()[num], AudioType.MPEG);//注意这里的路径必须加:"file://"
        yield return _unityWebRequest.SendWebRequest();
        AudioClip _audioClip = DownloadHandlerAudioClip.GetContent(_unityWebRequest);
        playersou.clip = _audioClip;
        playersou.Play();
    }

通过执行上面的协成,可以完成音频文件的加载。

注意:这里的用于本地播放音频的路径前必须加:"file://",是两个"/",不是三个,也不是一个!!!,因为Application.persistentDataPath获取到的路径本身前面自带一个"/"。这里就很坑了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐