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获取到的路径本身前面自带一个"/"。这里就很坑了

有两种情况: 1.在pc平台下,unity无法外部加载mp3,但是可以加载ogg和wav。如果非要加载MP3,那么只能先读取数据,然后转为wav格式,最后audiosource来播放。 2.如果在移动平台,则直接使用www类来加载数据,获取里面的AudioClip给AudioSource播放即可。 由上可知所以需要把MP3文件转换为wav文件 具体代码如下: using System.Coll...
Unity2018.4.2ff 开发安卓加载外部音频文件开发说明 1、WWW方式,支持MP3WAV音频文件格式 2、 UnityWebRequest方式,UnityWebRequestMultimedia.GetAudioClip(readPath, _audioType)不支持MP3格式,支持WAV格式; 3、WWW和UnityWebRequest都不能在安卓使用Naudio.dll库文件创建新的wav文件。 (那位大佬如何知道方式,请在评论转告一下,谢谢!!!) 创建代码如下:
看到网上对本地MP3文件的读取多采用WWW加NAudio的方式。其中NAudio将MP3文件转为wav,再由WWW将wav文件加载unity的AudioClip。 这里这么做的原因是WWW不支持MP3格式。这种做法较为陈旧。 unity新版的UnityWebRequestMultimedia已经支持了MP3格式。用法如下 private IEnumerator LoadMusic(str...
由于目前做的项目是发布在 Android 平台的,所以遇到了还蛮多的关于 Android 方面的问题的。 最近遇到一个问题,就是需要在程序中读取并播放外部(本地存储)的 wav 音频。 此问题已解决,现将解决方法整理分享如下。 解决方法: 1. 用 WWW 来加载本地的 wav 文件, 然后将 wav 文件加载为 AudioClip。 private AudioSourc...
IEnumerator GetJson(string path, UnityAction<string> onGetJson) using (UnityWebRequest webRequest = UnityWebRequest.Get(path)) yield return webRequest.SendWebRequest(); if (webRequest.result == UnityWebRequest.Result.Connectio
  由于Unity支持的外部加载音频格式有限(wav、ogg等),因此本文使用支持.Net的NAudio库来完成MP3音频加载播放。   NAudio   下载NAudio动态库,然后放在Unity中的Plugins文件夹下。在Unity使用NAudio播放MP3音频有两种方式,使用声卡直接播放使用Unity的AudioSource播放。接下来我们一一了解。 直接播放   在Unity中直接播放,需要先申请实例化一个WaveOutEvent对象,用于将音频直接发送到声卡输出;然后需要一个A PointerEventData eventData = new PointerEventData(EventSystem.current); eventData.position = mousePosition; List<RaycastResult> raycastResults = new List<RaycastResult>(); EventSystem.current.RaycastAll(eventData, raycastResults); if (raycastResults.Count > 0) isOnUI= true; isOnUI= false; 鼠标按下的时候调用这个函数 LocationService class is used but Locations Usage Description is empty. App will not work on iOS 10+ Unity UnityWebRequest: InvalidOperationException: Insecure connection not allowed