User Music In-Game < DownloadHandlerAudioClip
Hello everyone.
I am trying to use DownloadHandlerAudioClip.GetContent (UnityWebRequest) to get audio files from a certain path and use them in-game as AudioClips.
The following script seems to be working fine till one of the very last lines, where you can read
AudioClip clip = DownloadHandlerAudioClip.GetContent(AudioFiles);
string path;
public List<AudioClip> Cliplist;
AudioClip[] clips;
public List<string> audioname;
void Start()
{
path = string.Format("{0}/Musicas_User", Application.dataPath);
if (Directory.Exists(path))
{
DirectoryInfo info = new System.IO.DirectoryInfo(path);
foreach (FileInfo item in info.GetFiles("*.wav"))
{
audioname.Add(item.Name);
}
}
else
print("pasta Musicas_User nao foi criada");
StartCoroutine(LoadAudioFile());
}
IEnumerator LoadAudioFile()
{
for (int i = 0; i < audioname.Count; i++)
{
UnityWebRequest AudioFiles = UnityWebRequestMultimedia.GetAudioClip(path + string.Format("{0}", audioname[i]), AudioType.WAV);
yield return AudioFiles.SendWebRequest();
if (AudioFiles.isNetworkError)
{
Debug.Log(AudioFiles.error);
Debug.Log(path + string.Format("{0}", audioname[i]));
}
else
{
AudioClip clip = DownloadHandlerAudioClip.GetContent(AudioFiles);
clip.name = audioname[i];
Cliplist.Add(clip);
Debug.Log(path + string.Format("{0}", audioname[i]));
}
}
}
Error on console:
InvalidOperationException: Cannot access the .audioClip property of an aborted DownloadHandlerAudioClip
UnityEngine.Networking.DownloadHandlerAudioClip.GetContent (UnityEngine.Networking.UnityWebRequest www) (at C:/buildslave/unity/build/Modules/UnityWebRequestAudio/Public/DownloadHandlerAudio.bindings.cs:49)
Any ideas why it isnt working? Its my frist time trying to use UnityWebRequest.
Many thanks :)
Did you check if your file exist? I am getting the same error here when the file don't exist. Boa sorte! :-)
Answer by anileapen05 · Jul 06, 2019 at 06:18 PM
private IEnumerator LoadAudio(string audioName, int track_id, float start_time)
{
using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(
musicPath.Replace("#","%23") +
//musicPath +
audioName, AudioType.OGGVORBIS))
{
var synRes = www.SendWebRequest();
yield return synRes;
if (www.isNetworkError)
{
Debug.Log(www.error);
}
else
{
stream_music = DownloadHandlerAudioClip.GetContent(www);
musicSource.clip = stream_music;
musicSource.time = start_time;
current_track_num = track_id;
current_track = GetCurrentTrack();
musicSource.Play();
}
}
}
Your answer
Follow this Question
Related Questions
How do I insert audioclip on a simple prefab using ecs? 0 Answers
AudioSource play sound for script given time for one time complete clip. 0 Answers
What causes weird cracking/popping sound when playing 3d sound 1 Answer
How to display information screen when a game object is clicked? 0 Answers
GUI TEXT problem 0 Answers