示例#1
0
        protected override async Task OnParametersSetAsync()
        {
            var titleId = int.Parse(TitleId);
            var title   = (await HttpService.TitlesApiAccess.GetSingleWithPlaybackStatus(titleId, UserManagerService.CurrentUser.UserId)).Object;

            if (title != null)
            {
                var at = 0;
                if (Position != null)
                {
                    at = int.Parse(Position);
                }
                await StartPlaybackOf(title, at);
            }

            await MediaSessionService.ActivateEventsCore();

            RegisterMediaSessionEvents();
        }
示例#2
0
        public async Task StartPlaybackOf(TitleWithPlayback title, int startFrom = 0)
        {
            await BreadcrumbService.InitWithTitle(title, false);

            if (CurrentPlayback?.TitleId != title.TitleId)
            {
                if (CurrentPlayback != null)
                {
                    await HttpService.PlaybackApiAccess.UpdatePlayback(CurrentPlayback.TitleId,
                                                                       UserManagerService.CurrentUser.UserId, (int)LastKnownPosition);

                    LastKnownPosition = 0;
                    await BlazoredVideo.PausePlayback();

                    CurrentPlayback = null;
                    //base.StateHasChanged();
                    //await Task.Yield();
                }

                CurrentPlayback = title;
                if (StreamId != null)
                {
                    await HttpService.PlaybackApiAccess.EndStream(StreamId);
                }

                var streamId = (await HttpService.PlaybackApiAccess.GetStreamId(CurrentPlayback.TitleId)).Object.Id;
                StreamId = WebUtility.UrlEncode(streamId);

                LastPlayback = title.Playback?.FirstOrDefault();
                TitleId      = CurrentPlayback.TitleId.ToString();
                ShowTitleInCurrentPlayback = true;
                NextTitle = null;

                base.StateHasChanged();
                await Task.Yield();
                await GetNextTitle();

                await BlazoredVideo.ReloadControl();

                await MediaSessionService.SetMediaMetaData(new MediaData()
                {
                    Title    = CurrentPlayback.Name,
                    Album    = BreadcrumbService.Season.Name,
                    Artist   = BreadcrumbService.Genre.Name,
                    Artworks = new[]
                    {
                        new MediaDataArtwork()
                        {
                            Source = GetPoster(),
                            Type   = MimeTypes.GetMimeType("jpeg"),
                            Sizes  = "96x96"
                        },
                    }
                });
            }

            //if (!await FullscreenComponent.HasFullscreen())
            //{
            //	await FullscreenComponent.RequestFullscreen();
            //}

            if (startFrom != 0)
            {
                StateHasChanged();
                await Task.Yield();

                BlazoredVideo.CurrentTime = startFrom;
            }

            await BlazoredVideo.StartPlayback();
        }