AudioResolver.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Controller.Library;
  3. using System.ComponentModel.Composition;
  4. using System.IO;
  5. namespace MediaBrowser.Controller.Resolvers
  6. {
  7. [Export(typeof(IBaseItemResolver))]
  8. public class AudioResolver : BaseItemResolver<Audio>
  9. {
  10. public override ResolverPriority Priority
  11. {
  12. get { return ResolverPriority.Last; }
  13. }
  14. protected override Audio Resolve(ItemResolveEventArgs args)
  15. {
  16. // Return audio if the path is a file and has a matching extension
  17. if (!args.IsDirectory)
  18. {
  19. if (IsAudioFile(args.Path))
  20. {
  21. return new Audio();
  22. }
  23. }
  24. return null;
  25. }
  26. private static bool IsAudioFile(string path)
  27. {
  28. string extension = Path.GetExtension(path).ToLower();
  29. switch (extension)
  30. {
  31. case ".mp3":
  32. case ".wma":
  33. case ".aac":
  34. case ".acc":
  35. case ".flac":
  36. case ".m4a":
  37. case ".m4b":
  38. case ".wav":
  39. case ".ape":
  40. return true;
  41. default:
  42. return false;
  43. }
  44. }
  45. }
  46. }