【发布时间】:2020-11-16 06:11:36
【问题描述】:
我正在尝试使用 Unity 中提供的 WWW 类在运行时加载 mp3 文件。
我没有收到任何错误,但歌曲处理完毕后我无法播放音乐。我到处找,找不到任何可以帮助我的东西。
这是我目前使用的代码:
public class OpenFile : MonoBehaviour {
string path;
string extension;
public GameObject musicAnalysis;
string songName;
float length;
AudioSource song;
// Use this for initialization
void Start () {
song = musicAnalysis.GetComponent<AudioSource>();
}
// Update is called once per frame
void Update () {
if(song.isPlaying != true){
song.Play();
}
}
public void FileSelect(){
//Open windows Exploer
path = EditorUtility.OpenFilePanel("Select a Song","","");
print(path);
//Take the end of the the path and sasve it to another string
extension = path.Substring(path.IndexOf('.') + 1);
print (extension);
//Check if the user has select the correct file
if(extension == "mp3" || extension == "wav" || extension == "ogg"){
//if correct file process file
print ("You have selected the correct file type congrats");
LoadSong();
print ("Song Name: " + songName);
print ("Song Length: " + length);
}
//if the user selects the wrong file type
else{
//pop up box that tells the user that they have selected the wrong file
EditorUtility.DisplayDialog("Error","Incorrect File Type Please select another","Ok");
////Open windows Exploer
path = EditorUtility.OpenFilePanel("Select a Song","","");
}
}
void LoadSong(){
WWW www = new WWW("file://" + path);
song.clip = www.audioClip;
songName = www.audioClip.name;
length = www.audioClip.length;
while(!www.isDone){
print ("Processing File" + path);
}
if(www.isDone == true){
print ("Song has been processed");
}
}
}
【问题讨论】:
-
你在哪个平台上? Windows 不支持 MP3。
-
我使用的是 Windows。你知道我也尝试过 ogg 和 wav @peterept
-
您绝对可以使用 ogg 或 wav(确保文件具有正确的扩展名)。您的代码在上面不起作用的原因是因为您没有等待 www 完成。下面我给你答案。