using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Resolvers; using System; using System.IO; using System.Linq; namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio { /// /// Class AudioResolver /// public class AudioResolver : ItemResolver { /// /// Gets the priority. /// /// The priority. public override ResolverPriority Priority { get { return ResolverPriority.Last; } } /// /// Resolves the specified args. /// /// The args. /// Entities.Audio.Audio. protected override Controller.Entities.Audio.Audio Resolve(ItemResolveArgs args) { // Return audio if the path is a file and has a matching extension if (!args.IsDirectory) { if (IsAudioFile(args.Path)) { return new Controller.Entities.Audio.Audio(); } } return null; } /// /// The audio file extensions /// public static readonly string[] AudioFileExtensions = new[] { ".mp3", ".flac", ".wma", ".aac", ".acc", ".m4a", ".m4b", ".wav", ".ape", ".ogg", ".oga" }; /// /// Determines whether [is audio file] [the specified args]. /// /// The path. /// true if [is audio file] [the specified args]; otherwise, false. public static bool IsAudioFile(string path) { return AudioFileExtensions.Contains(Path.GetExtension(path), StringComparer.OrdinalIgnoreCase); } } }