From 3e22a930c3c53fa173266ec95e711367dcaf6172 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Thu, 15 Dec 2022 21:27:14 -0800 Subject: [PATCH] AudioUtilities: better error reporting --- NewHorizons/Utility/AudioUtilities.cs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/NewHorizons/Utility/AudioUtilities.cs b/NewHorizons/Utility/AudioUtilities.cs index 5db65386..8f4a5407 100644 --- a/NewHorizons/Utility/AudioUtilities.cs +++ b/NewHorizons/Utility/AudioUtilities.cs @@ -81,9 +81,9 @@ namespace NewHorizons.Utility _loadedAudioClips.Clear(); } - private static async Task GetAudioClip(string filePath) + private static async Task GetAudioClip(string path) { - var extension = filePath.Split('.').Last(); + var extension = Path.GetExtension(path); UnityEngine.AudioType audioType; @@ -99,24 +99,24 @@ namespace NewHorizons.Utility audioType = UnityEngine.AudioType.MPEG; break; default: - Logger.LogError($"Invalid audio file extension ({extension}) must be .wav or .ogg or .mp3"); + Logger.LogError($"Couldn't load Audio at {path} : Invalid audio file extension ({extension}) must be .wav or .ogg or .mp3"); return null; } + path = $"file:///{path.Replace("+", "%2B")}"; if (audioType == UnityEngine.AudioType.MPEG) { - string fileProtocolPath = $"file://{filePath}"; - DownloadHandlerAudioClip dh = new DownloadHandlerAudioClip(fileProtocolPath, UnityEngine.AudioType.MPEG); + DownloadHandlerAudioClip dh = new DownloadHandlerAudioClip(path, UnityEngine.AudioType.MPEG); dh.compressed = true; - using (UnityWebRequest www = new UnityWebRequest(fileProtocolPath, "GET", dh, null)) + using (UnityWebRequest www = new UnityWebRequest(path, "GET", dh, null)) { var result = www.SendWebRequest(); while (!result.isDone) { await Task.Delay(100); } - if (www.isNetworkError) + if (www.isNetworkError || www.isHttpError) { - Debug.Log(www.error); + Logger.LogError($"Couldn't load Audio at {path} : {www.error}"); return null; } else @@ -127,15 +127,15 @@ namespace NewHorizons.Utility } else { - using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(filePath, audioType)) + using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(path, audioType)) { var result = www.SendWebRequest(); while (!result.isDone) { await Task.Delay(100); } - if (www.isNetworkError) + if (www.isNetworkError || www.isHttpError) { - Debug.Log(www.error); + Logger.LogError($"Couldn't load Audio at {path} : {www.error}"); return null; } else