在PC端VR遊戲開發中,須要動態加載本地的MP3文件,可是Unity3D不知道出於什麼緣由,到5.4.0也不支持MP3文件的外部加載(目前只支持wav和ogg)。.net
所以要想經過www來加載mp3文件就只能採用曲線救國的方式,將MP3文件讀取後轉爲wav或者ogg,而後再給AudioSource來播放code
因爲只是在PC端進行開發,故這裏採用NAudio.dll這個類庫。使用NAudio須要將項目Unity3D工程的API版本改爲.net 2.0(默認是.net 2.0 sub,在PlayerSetting->OtherSettings的Api Compatibility Level)。將NAudio.dll放置在項目的Plugins文件夾下。blog
代碼部分以下遊戲
using System.Collections;
using System.IO;
using NAudio.Wave;
using UnityEngine;ip
public class MusicLoad : MonoBehaviour
{
protected void OnGUI()
{
if (GUILayout.Button("www"))
{
StartCoroutine(LoadMusic(@"C:\Users\CGZ\Desktop\1.mp3", @"C:\Users\CGZ\Desktop\1.wav"));
}
}遊戲開發
public AudioSource Source;開發
private IEnumerator LoadMusic(string filepath, string savepath)
{
var stream = File.Open(filepath, FileMode.Open);
var reader = new Mp3FileReader(stream);
WaveFileWriter.CreateWaveFile(savepath, reader);
var www = new WWW("file://" + savepath);
yield return www;
var clip = www.audioClip;
Source.clip = clip;
Source.Play();
}
}get
NAudio.dll的下載地址http://naudio.codeplex.com/releases/view/612263string