|
|
|
@ -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)
|
|
|
|
|
.ConfigureAwait(false);
|
|
|
|
@ -334,11 +334,16 @@ namespace MediaBrowser.Server.Implementations.Session
|
|
|
|
|
{
|
|
|
|
|
var runtimeTicks = libraryItem.RunTimeTicks;
|
|
|
|
|
|
|
|
|
|
var mediaSource = await GetMediaSource(libraryItem, info.MediaSourceId).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
if (mediaSource != null)
|
|
|
|
|
MediaSourceInfo mediaSource = null;
|
|
|
|
|
var hasMediaSources = libraryItem as IHasMediaSources;
|
|
|
|
|
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);
|
|
|
|
@ -414,12 +419,12 @@ namespace MediaBrowser.Server.Implementations.Session
|
|
|
|
|
if (!_activeConnections.TryGetValue(key, out sessionInfo))
|
|
|
|
|
{
|
|
|
|
|
sessionInfo = new SessionInfo
|
|
|
|
|
{
|
|
|
|
|
Client = appName,
|
|
|
|
|
DeviceId = deviceId,
|
|
|
|
|
ApplicationVersion = appVersion,
|
|
|
|
|
Id = key.GetMD5().ToString("N")
|
|
|
|
|
};
|
|
|
|
|
{
|
|
|
|
|
Client = appName,
|
|
|
|
|
DeviceId = deviceId,
|
|
|
|
|
ApplicationVersion = appVersion,
|
|
|
|
|
Id = key.GetMD5().ToString("N")
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
sessionInfo.DeviceName = deviceName;
|
|
|
|
|
sessionInfo.UserId = userId;
|
|
|
|
@ -756,7 +761,13 @@ namespace MediaBrowser.Server.Implementations.Session
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|