WWW.GetAudioClip not working, throwing empty exception
I'm using this code to load an audio file from the local filesystem:
WWW www = new WWW("file:///" + audiofile.FullName);
print("www gotten");
while (!(www.isDone)) { } // wait for load completion
print("www loaded");
AudioClip ac = www.audioClip;
print("audioclip gotten");
Utilities.Globals.audioClip = ac;
print("audioClip set");
The resulting console output: It prints "www gotten" and "www loaded", then an error/exception with no text and no location in code, then "audioclip gotten" and "audioclip set". I do have Error Pause turned on, and it does pause - but still prints the last two things. If I unpause it and keep going...
Later in the code, using the audioclip, I do: audioSource.clip = Utilities.Globals.audioClip; audioSource.Play(); It plays nothing audible. Checking the clip field of the AudioSource used in the inspector shows it having what seems to be an empty clip - completely empty inspector window. It does have a play bar at the bottom, but the bit that usually shows the waveform instead is empty, with text at the bottom "PCM, 0 Hz, -1.1, 00:00.000". Trying to play throws another empty error.
Any ideas?
did you found a solution? i get the same error with WWW.GetAudioClip().
Answer by Qwertystop · Apr 19, 2016 at 11:13 PM
Solution found: File name did not exist. Apparently WWW doesn't bother to complain about that until you try to see what it got.
Answer by harrismak4 · Dec 21, 2016 at 07:53 AM
IEnumerator DownloadAndPlay(string url)
{
WWW www = new WWW(url);
while (www.progress < 0.1)
{
Debug.Log(www.progress);
yield return new WaitForSeconds(0.1f);
}
aS.clip = www.GetAudioClip(false, true, AudioType.MPEG);
streamPlayStart = true;
}
first let WWW to download info of your music file like name, length. then use www.GetAudioClip() function to get clip if you use it, before it download something it will not recognize that downloaded data is an AudioClip