AudioUtilities: better error reporting

This commit is contained in:
JohnCorby 2022-12-15 21:27:14 -08:00
parent eaf71ca23f
commit 3e22a930c3

View File

@ -81,9 +81,9 @@ namespace NewHorizons.Utility
_loadedAudioClips.Clear();
}
private static async Task<AudioClip> GetAudioClip(string filePath)
private static async Task<AudioClip> 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