aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Dlna/PlayTo/PlayToController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Dlna/PlayTo/PlayToController.cs')
-rw-r--r--MediaBrowser.Dlna/PlayTo/PlayToController.cs53
1 files changed, 33 insertions, 20 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/PlayToController.cs b/MediaBrowser.Dlna/PlayTo/PlayToController.cs
index 11fc8ecc35..7d06185740 100644
--- a/MediaBrowser.Dlna/PlayTo/PlayToController.cs
+++ b/MediaBrowser.Dlna/PlayTo/PlayToController.cs
@@ -139,16 +139,21 @@ namespace MediaBrowser.Dlna.PlayTo
try
{
var streamInfo = StreamParams.ParseFromUrl(e.OldMediaInfo.Url, _libraryManager);
- var progress = GetProgressInfo(e.OldMediaInfo, streamInfo);
+ if (streamInfo.Item != null)
+ {
+ var progress = GetProgressInfo(e.OldMediaInfo, streamInfo);
- var positionTicks = progress.PositionTicks;
+ var positionTicks = progress.PositionTicks;
- ReportPlaybackStopped(e.OldMediaInfo, streamInfo, positionTicks);
+ ReportPlaybackStopped(e.OldMediaInfo, streamInfo, positionTicks);
+ }
streamInfo = StreamParams.ParseFromUrl(e.NewMediaInfo.Url, _libraryManager);
- progress = GetProgressInfo(e.NewMediaInfo, streamInfo);
+ if (streamInfo.Item == null) return;
+
+ var newItemProgress = GetProgressInfo(e.NewMediaInfo, streamInfo);
- await _sessionManager.OnPlaybackStart(progress).ConfigureAwait(false);
+ await _sessionManager.OnPlaybackStart(newItemProgress).ConfigureAwait(false);
}
catch (Exception ex)
{
@@ -161,6 +166,9 @@ namespace MediaBrowser.Dlna.PlayTo
try
{
var streamInfo = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager);
+
+ if (streamInfo.Item == null) return;
+
var progress = GetProgressInfo(e.MediaInfo, streamInfo);
var positionTicks = progress.PositionTicks;
@@ -219,9 +227,14 @@ namespace MediaBrowser.Dlna.PlayTo
{
try
{
- var info = GetProgressInfo(e.MediaInfo);
+ var info = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager);
- await _sessionManager.OnPlaybackStart(info).ConfigureAwait(false);
+ if (info.Item != null)
+ {
+ var progress = GetProgressInfo(e.MediaInfo, info);
+
+ await _sessionManager.OnPlaybackStart(progress).ConfigureAwait(false);
+ }
}
catch (Exception ex)
{
@@ -233,9 +246,14 @@ namespace MediaBrowser.Dlna.PlayTo
{
try
{
- var info = GetProgressInfo(e.MediaInfo);
+ var info = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager);
- await _sessionManager.OnPlaybackProgress(info).ConfigureAwait(false);
+ if (info.Item != null)
+ {
+ var progress = GetProgressInfo(e.MediaInfo, info);
+
+ await _sessionManager.OnPlaybackProgress(progress).ConfigureAwait(false);
+ }
}
catch (Exception ex)
{
@@ -243,13 +261,6 @@ namespace MediaBrowser.Dlna.PlayTo
}
}
- private PlaybackStartInfo GetProgressInfo(uBaseObject mediaInfo)
- {
- var info = StreamParams.ParseFromUrl(mediaInfo.Url, _libraryManager);
-
- return GetProgressInfo(mediaInfo, info);
- }
-
private PlaybackStartInfo GetProgressInfo(uBaseObject mediaInfo, StreamParams info)
{
var ticks = _device.Position.Ticks;
@@ -736,10 +747,10 @@ namespace MediaBrowser.Dlna.PlayTo
if (media != null)
{
var info = StreamParams.ParseFromUrl(media.Url, _libraryManager);
- var progress = GetProgressInfo(media, info);
if (info.Item != null)
{
+ var progress = GetProgressInfo(media, info);
var newPosition = progress.PositionTicks ?? 0;
var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null;
@@ -762,10 +773,10 @@ namespace MediaBrowser.Dlna.PlayTo
if (media != null)
{
var info = StreamParams.ParseFromUrl(media.Url, _libraryManager);
- var progress = GetProgressInfo(media, info);
if (info.Item != null)
{
+ var progress = GetProgressInfo(media, info);
var newPosition = progress.PositionTicks ?? 0;
var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null;
@@ -829,7 +840,9 @@ namespace MediaBrowser.Dlna.PlayTo
ItemId = GetItemId(url)
};
- if (string.IsNullOrWhiteSpace(request.ItemId))
+ Guid parsedId;
+
+ if (string.IsNullOrWhiteSpace(request.ItemId) || !Guid.TryParse(request.ItemId, out parsedId))
{
return request;
}
@@ -882,7 +895,7 @@ namespace MediaBrowser.Dlna.PlayTo
request.Item = string.IsNullOrWhiteSpace(request.ItemId)
? null
- : libraryManager.GetItemById(new Guid(request.ItemId));
+ : libraryManager.GetItemById(parsedId);
var hasMediaSources = request.Item as IHasMediaSources;