看到网上对本地MP3文件的读取多采用WWW加NAudio的方式。其中NAudio将MP3文件转为wav,再由WWW将wav文件加载为unity的AudioClip。

这里这么做的原因是WWW不支持MP3格式。这种做法较为陈旧。

unity新版的UnityWebRequestMultimedia已经支持了MP3格式。用法如下

private IEnumerator LoadMusic(string filepath)
        filepath = "file://" + filepath;
        using (var uwr = UnityWebRequestMultimedia.GetAudioClip(filepath, AudioType.MPEG))
            yield return uwr.SendWebRequest();
            if (uwr.isNetworkError)
                Debug.LogError(uwr.error);
            else { 
                AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr);
                // use audio clip
                audioSource.clip = clip;                
StartCoroutine(LoadMusic("/storage/emulated/0/a.mp3"));
StartCoroutine(LoadMusic("D:/a.mp3"));

这里测试了pc和安卓平台。

版本:unity2017.4.3f1 x64

ps:为了读取文件,需要对f应的权限。

edit->project settings->player->configuration

write permission设置为external

unity官方文档链接

---------------------------------

补充 (20190610) :

看了下面的评论, 今天重新试了一下, 发现已经不行了(on windows), android 平台应该仍然可以(这里没有测试,不过评论里反映的基本上都是windows下不行).所以在windows下大家还是采用其他的方式, 比如

1. 使用 ogg 或 wav 等格式, 不使用 mp3 格式文件.

2. 使用NAudio 等库在加载时将 mp3 文件 转换为 wav 格式, 再进行加载.

看到网上对本地MP3文件的读取多采用WWW加NAudio的方式。其中NAudio将MP3文件转为wav,再由WWW将wav文件加载为unity的AudioClip。这里这么做的原因是WWW不支持MP3格式。这种做法较为陈旧。unity新版的UnityWebRequestMultimedia已经支持了MP3格式。用法如下private IEnumerator LoadMusic(str...
unity的WWW或者UnityWebRequest无法加载MP3格式的,就需要我们将MP3转成WAV或者其他可用的格式。 这里使用了NAudio.dll 引用 using NAudio.Wave; 只有dll文件。教程:https://editor.csdn.net/md?articleId=106389044
使用WWW功能,除了能够下载图片,还能下载声音,方法与下载图片类似,下面是一个简单的实例: 1.在网站的根目录放置一个声音文件Alarm01.wav(这个是window系统自带的找不到这个格式的可以直接在C盘搜索) 2.在WebManager.cs脚本中添加clipPath、audio、m_downloadClip属性和DownloadSound()函数: #region 声音下载
Unity3D PC平台本身是支持直接用www读取本地ogg,wav的,但是并不能读取byte[],字节数组格式,这对用习惯了bass,fmod的人来说有点不方便。 搜了一圈发现了一个C#的音频库叫NAudio,开源并且免费。 https://archive.codeplex.com/?p=naudio https://github.com/naudio/NAudio 简单粗暴的搞一份二进...
首先明确unity Editor下(平台Web),无法从服务器加载MP3类型音频进行播放,可以加载ogg和wav格式音频; 但是发布出来Web后,unity却又可以从服务器加载MP3类型音频进行播放,也可以加载wav格式,但是不能加载ogg格式,否则浏览器会报不支持: “streaming of "ogg" on this platform is not supported” 接下来写一下怎么加载: using System.Collections; using UnityEngine; usi..
由于目前做的项目是发布在 Android 平台的,所以遇到了还蛮多的关于 Android 方面的问题的。 最近遇到一个问题,就是需要在程序中读取并播放外部(本地存储)的 wav 音频。 此问题已解决,现将解决方法整理分享如下。 解决方法: 1. 用 WWW 来加载本地的 wav 文件, 然后将 wav 文件加载为 AudioClip。 private AudioSourc...