2
0
LukePulverenti Luke Pulverenti luke pulverenti 13 жил өмнө
parent
commit
fbf3916bce

+ 45 - 0
MediaBrowser.Api/HttpHandlers/AudioHandler.cs

@@ -0,0 +1,45 @@
+using System;
+using MediaBrowser.Common.Net.Handlers;
+using MediaBrowser.Controller;
+using MediaBrowser.Model.Entities;
+
+namespace MediaBrowser.Api.HttpHandlers
+{
+    public class AudioHandler : StaticFileHandler
+    {
+        private BaseItem _LibraryItem;
+        /// <summary>
+        /// Gets the library item that will be played, if any
+        /// </summary>
+        private BaseItem LibraryItem
+        {
+            get
+            {
+                if (_LibraryItem == null)
+                {
+                    string id = QueryString["id"];
+
+                    if (!string.IsNullOrEmpty(id))
+                    {
+                        _LibraryItem = Kernel.Instance.GetItemById(Guid.Parse(id));
+                    }
+                }
+
+                return _LibraryItem;
+            }
+        }
+
+        public override string Path
+        {
+            get
+            {
+                if (LibraryItem != null)
+                {
+                    return LibraryItem.Path;
+                }
+
+                return base.Path;
+            }
+        }
+    }
+}

+ 1 - 0
MediaBrowser.Api/MediaBrowser.Api.csproj

@@ -47,6 +47,7 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="ApiService.cs" />
+    <Compile Include="HttpHandlers\AudioHandler.cs" />
     <Compile Include="HttpHandlers\GenreHandler.cs" />
     <Compile Include="HttpHandlers\GenresHandler.cs" />
     <Compile Include="HttpHandlers\ImageHandler.cs" />

+ 5 - 1
MediaBrowser.Api/Plugin.cs

@@ -44,7 +44,7 @@ namespace MediaBrowser.Api
             else if (localPath.EndsWith("/api/image", StringComparison.OrdinalIgnoreCase))
             {
                 return new ImageHandler();
-            } 
+            }
             else if (localPath.EndsWith("/api/users", StringComparison.OrdinalIgnoreCase))
             {
                 return new UsersHandler();
@@ -89,6 +89,10 @@ namespace MediaBrowser.Api
             {
                 return new StaticFileHandler();
             }
+            else if (localPath.EndsWith("/api/audio", StringComparison.OrdinalIgnoreCase))
+            {
+                return new AudioHandler();
+            }
 
             return null;
         }

+ 1 - 1
MediaBrowser.Common/Net/Handlers/StaticFileHandler.cs

@@ -10,7 +10,7 @@ namespace MediaBrowser.Common.Net.Handlers
 {
     public class StaticFileHandler : BaseHandler
     {
-        public string Path
+        public virtual string Path
         {
             get
             {