fix hasMediaSources exception

pull/702/head
Luke Pulverenti 9 years ago
parent f8927ceb06
commit 72023207a4

@ -305,7 +305,7 @@ namespace MediaBrowser.Server.Implementations.Session
} }
} }
private async Task<MediaSourceInfo> GetMediaSource(BaseItem item, string mediaSourceId) private async Task<MediaSourceInfo> GetMediaSource(IHasMediaSources item, string mediaSourceId)
{ {
var sources = await _mediaSourceManager.GetPlayackMediaSources(item.Id.ToString("N"), false, CancellationToken.None) var sources = await _mediaSourceManager.GetPlayackMediaSources(item.Id.ToString("N"), false, CancellationToken.None)
.ConfigureAwait(false); .ConfigureAwait(false);
@ -334,11 +334,16 @@ namespace MediaBrowser.Server.Implementations.Session
{ {
var runtimeTicks = libraryItem.RunTimeTicks; var runtimeTicks = libraryItem.RunTimeTicks;
var mediaSource = await GetMediaSource(libraryItem, info.MediaSourceId).ConfigureAwait(false); MediaSourceInfo mediaSource = null;
var hasMediaSources = libraryItem as IHasMediaSources;
if (mediaSource != null) if (hasMediaSources != null)
{ {
runtimeTicks = mediaSource.RunTimeTicks; mediaSource = await GetMediaSource(hasMediaSources, info.MediaSourceId).ConfigureAwait(false);
if (mediaSource != null)
{
runtimeTicks = mediaSource.RunTimeTicks;
}
} }
info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource); info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource);
@ -414,12 +419,12 @@ namespace MediaBrowser.Server.Implementations.Session
if (!_activeConnections.TryGetValue(key, out sessionInfo)) if (!_activeConnections.TryGetValue(key, out sessionInfo))
{ {
sessionInfo = new SessionInfo sessionInfo = new SessionInfo
{ {
Client = appName, Client = appName,
DeviceId = deviceId, DeviceId = deviceId,
ApplicationVersion = appVersion, ApplicationVersion = appVersion,
Id = key.GetMD5().ToString("N") Id = key.GetMD5().ToString("N")
}; };
sessionInfo.DeviceName = deviceName; sessionInfo.DeviceName = deviceName;
sessionInfo.UserId = userId; sessionInfo.UserId = userId;
@ -756,7 +761,13 @@ namespace MediaBrowser.Server.Implementations.Session
if (current == null || !string.Equals(current.Id, info.ItemId, StringComparison.OrdinalIgnoreCase)) if (current == null || !string.Equals(current.Id, info.ItemId, StringComparison.OrdinalIgnoreCase))
{ {
var mediaSource = await GetMediaSource(libraryItem, info.MediaSourceId).ConfigureAwait(false); MediaSourceInfo mediaSource = null;
var hasMediaSources = libraryItem as IHasMediaSources;
if (hasMediaSources != null)
{
mediaSource = await GetMediaSource(hasMediaSources, info.MediaSourceId).ConfigureAwait(false);
}
info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource); info.Item = GetItemInfo(libraryItem, libraryItem, mediaSource);
} }

Loading…
Cancel
Save