Browse Source

PlayTo Progressreporting

7illusions 11 years ago
parent
commit
871a3cb52c
1 changed files with 20 additions and 17 deletions
  1. 20 17
      MediaBrowser.Dlna/PlayTo/DlnaController.cs

+ 20 - 17
MediaBrowser.Dlna/PlayTo/DlnaController.cs

@@ -167,25 +167,28 @@ namespace MediaBrowser.Dlna.PlayTo
             if (_currentItem == null || _device.IsStopped)
             if (_currentItem == null || _device.IsStopped)
                 return;
                 return;
 
 
-            if (!_playbackStarted)
+            var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
+            
+            if (playlistItem != null)
             {
             {
-                await _sessionManager.OnPlaybackStart(new PlaybackInfo
+                if (!_playbackStarted)
                 {
                 {
-                    Item = _currentItem, 
-                    SessionId = _session.Id, 
-                    CanSeek = true,
-                    QueueableMediaTypes = new List<string> { _currentItem.MediaType }
-
-                }).ConfigureAwait(false);
+                    await _sessionManager.OnPlaybackStart(new PlaybackInfo
+                    {
+                        Item = _currentItem,
+                        SessionId = _session.Id,
+                        CanSeek = true,
+                        QueueableMediaTypes = new List<string> { _currentItem.MediaType },
+                        MediaSourceId = playlistItem.MediaSourceId,
+                        AudioStreamIndex = playlistItem.AudioStreamIndex,
+                        SubtitleStreamIndex = playlistItem.SubtitleStreamIndex
 
 
-                _playbackStarted = true;
-            }
+                    }).ConfigureAwait(false);
 
 
-            if ((_device.IsPlaying || _device.IsPaused))
-            {
-                var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
+                    _playbackStarted = true;
+                }
 
 
-                if (playlistItem != null)
+                if ((_device.IsPlaying || _device.IsPaused))
                 {
                 {
                     var ticks = _device.Position.Ticks;
                     var ticks = _device.Position.Ticks;
 
 
@@ -487,7 +490,7 @@ namespace MediaBrowser.Dlna.PlayTo
 
 
             return (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';');
             return (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';');
         }
         }
-        
+
         private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaStream> mediaStreams, DeviceProfile profile)
         private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaStream> mediaStreams, DeviceProfile profile)
         {
         {
             var video = item as Video;
             var video = item as Video;
@@ -563,10 +566,10 @@ namespace MediaBrowser.Dlna.PlayTo
             _logger.Debug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", _device.Properties.Name, nextTrack.StreamUrl, dlnaheaders);
             _logger.Debug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", _device.Properties.Name, nextTrack.StreamUrl, dlnaheaders);
 
 
             await _device.SetAvTransport(nextTrack.StreamUrl, dlnaheaders, nextTrack.Didl);
             await _device.SetAvTransport(nextTrack.StreamUrl, dlnaheaders, nextTrack.Didl);
-         
+
             if (nextTrack.StartPositionTicks > 0 && !nextTrack.Transcode)
             if (nextTrack.StartPositionTicks > 0 && !nextTrack.Transcode)
                 await _device.Seek(TimeSpan.FromTicks(nextTrack.StartPositionTicks));
                 await _device.Seek(TimeSpan.FromTicks(nextTrack.StartPositionTicks));
-           
+
             return true;
             return true;
         }
         }