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方式,支持
MP3和
WAV音频文件格式
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.Send
WebRequest();
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