Files
deepdrft/DeepDrftWeb.Client/Services/StreamingErrorHandler.cs
T

33 lines
1.3 KiB
C#

using Microsoft.Extensions.Logging;
namespace DeepDrftWeb.Client.Services;
public static class StreamingErrorHandler
{
public static string GetUserFriendlyMessage(string technicalError)
{
var lowerError = technicalError.ToLowerInvariant();
return lowerError switch
{
_ when lowerError.Contains("network") || lowerError.Contains("connection") || lowerError.Contains("timeout") =>
"Unable to load audio. Please check your connection and try again.",
_ when lowerError.Contains("header") || lowerError.Contains("wav") || lowerError.Contains("invalid wav") =>
"This file format is not supported. Only WAV files can be played.",
_ when lowerError.Contains("audio") || lowerError.Contains("decode") || lowerError.Contains("format") =>
"This audio file may be corrupted or in an unsupported format.",
_ when lowerError.Contains("cancel") || lowerError.Contains("abort") =>
"Audio loading was cancelled.",
_ => "Unable to play audio. Please try again."
};
}
public static void LogError(ILogger logger, Exception ex, string operation, string trackId = "")
{
logger.LogError(ex, "Streaming error in {Operation} for track {TrackId}", operation, trackId);
}
}