/// <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);
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        public static void PlayStream(Trailer trailer)
        {
            var mediaItem = CreateStreamMediaItem(trailer);

            PlayItemsModel.PlayItem(mediaItem);
        }