diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
index 3773a2a1c5..13d103608f 100644
--- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
+++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.IO;
+using MediaBrowser.Api.Images;
+using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Entities;
@@ -9,6 +10,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
+using MediaBrowser.Model.Entities;
namespace MediaBrowser.Api.Playback.Progressive
{
@@ -89,7 +91,7 @@ namespace MediaBrowser.Api.Playback.Progressive
/// The state.
/// The response headers.
/// true if XXXX, false otherwise
- private void AddDlnaHeaders(StreamState state, IDictionary responseHeaders)
+ private void AddDlnaHeaders(StreamState state, IDictionary responseHeaders)
{
var timeSeek = RequestContext.GetHeader("TimeSeekRange.dlna.org");
@@ -167,6 +169,11 @@ namespace MediaBrowser.Api.Playback.Progressive
{
var state = GetState(request);
+ if (request.AlbumArt)
+ {
+ return GetAlbumArtResponse(state);
+ }
+
var responseHeaders = new Dictionary();
AddDlnaHeaders(state, responseHeaders);
@@ -186,6 +193,47 @@ namespace MediaBrowser.Api.Playback.Progressive
return GetStreamResult(state, responseHeaders, isHeadRequest).Result;
}
+ ///
+ /// Gets the album art response.
+ ///
+ /// The state.
+ /// System.Object.
+ private object GetAlbumArtResponse(StreamState state)
+ {
+ var request = new GetItemImage
+ {
+ MaxWidth = 800,
+ MaxHeight = 800,
+ Type = ImageType.Primary,
+ Id = state.Item.Id.ToString()
+ };
+
+ // Try and find some image to return
+ if (!state.Item.HasImage(ImageType.Primary))
+ {
+ if (state.Item.HasImage(ImageType.Backdrop))
+ {
+ request.Type = ImageType.Backdrop;
+ }
+ else if (state.Item.HasImage(ImageType.Thumb))
+ {
+ request.Type = ImageType.Thumb;
+ }
+ else if (state.Item.HasImage(ImageType.Logo))
+ {
+ request.Type = ImageType.Logo;
+ }
+ }
+
+ return new ImageService(UserManager, LibraryManager)
+ {
+ Logger = Logger,
+ RequestContext = RequestContext,
+ ResultFactory = ResultFactory
+
+ }.Get(request);
+ }
+
///
/// Gets the stream result.
///
@@ -193,7 +241,7 @@ namespace MediaBrowser.Api.Playback.Progressive
/// The response headers.
/// if set to true [is head request].
/// Task{System.Object}.
- private async Task