/// <summary> /// Constructs a dynamic <see cref="MediaItem"/> that contains the URL for the given <paramref name="stream"/> and starts the playback. /// </summary> /// <param name="stream">Stream.</param> public static void PlayStream(MyStream stream) { var mediaItem = CreateStreamMediaItem(stream); if (ServiceRegistration.Get <IPlayerContextManager>().IsVideoContextActive) { PlayItemsModel.CheckQueryPlayAction(mediaItem); } else { PlayItemsModel.PlayItem(mediaItem); } }
internal static async Task PlayMediaItemAsync(Guid mediaItemGuid, int startPos) { ISet <Guid> necessaryMIATypes = new HashSet <Guid>(); necessaryMIATypes.Add(MediaAspect.ASPECT_ID); necessaryMIATypes.Add(ProviderResourceAspect.ASPECT_ID); necessaryMIATypes.Add(ImporterAspect.ASPECT_ID); ISet <Guid> optionalMIATypes = new HashSet <Guid>(); optionalMIATypes.Add(AudioAspect.ASPECT_ID); optionalMIATypes.Add(VideoAspect.ASPECT_ID); optionalMIATypes.Add(MovieAspect.ASPECT_ID); optionalMIATypes.Add(SeriesAspect.ASPECT_ID); optionalMIATypes.Add(ImageAspect.ASPECT_ID); IList <MediaItem> items = new List <MediaItem>(); IFilter searchFilter = new MediaItemIdFilter(mediaItemGuid); MediaItemQuery searchQuery = new MediaItemQuery(necessaryMIATypes, optionalMIATypes, searchFilter) { Limit = 1 }; var cd = ServiceRegistration.Get <IServerConnectionManager>(false); if (cd?.ContentDirectory != null) { items = await cd.ContentDirectory.SearchAsync(searchQuery, false, null, false); } if (items.Count == 0) { ServiceRegistration.Get <ILogger>().Info("WifiRemote: PlayFile: No media item found"); return; } await PlayItemsModel.PlayItem(items[0]); if (startPos > 0) { SetPosition(startPos, true); } }
public static void PlayStream(Trailer trailer) { var mediaItem = CreateStreamMediaItem(trailer); PlayItemsModel.PlayItem(mediaItem); }