diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-06 14:50:16 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-04-06 14:50:16 -0400 |
| commit | de24402277d6f4b3812818cb9b65da14e4322a45 (patch) | |
| tree | 225b38f6e4e102fd95533e8f1801dea01af03330 | |
| parent | e221bd5c9e733a8749b477d827323e99c713099f (diff) | |
| parent | 494e5aab297bdff86f7c2d5de335c0c91146ee5d (diff) | |
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
| -rw-r--r-- | MediaBrowser.Dlna/PlayTo/DlnaController.cs | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/DlnaController.cs b/MediaBrowser.Dlna/PlayTo/DlnaController.cs index b1c85889d..6edb9d6f6 100644 --- a/MediaBrowser.Dlna/PlayTo/DlnaController.cs +++ b/MediaBrowser.Dlna/PlayTo/DlnaController.cs @@ -167,25 +167,28 @@ namespace MediaBrowser.Dlna.PlayTo if (_currentItem == null || _device.IsStopped) 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; @@ -487,7 +490,7 @@ namespace MediaBrowser.Dlna.PlayTo return (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';'); } - + private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaStream> mediaStreams, DeviceProfile profile) { 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); await _device.SetAvTransport(nextTrack.StreamUrl, dlnaheaders, nextTrack.Didl); - + if (nextTrack.StartPositionTicks > 0 && !nextTrack.Transcode) await _device.Seek(TimeSpan.FromTicks(nextTrack.StartPositionTicks)); - + return true; } |
