예제 #1
0
        private void InitializeCommands()
        {
            PrepareCommand = new Command(async () =>
            {
                try
                {
                    await MediaPlayer.PrepareAsync();

                    // Calculates seek unit based on duration.
                    _seekUnit = Math.Max(1000, MediaPlayer.Duration / 20);
                }
                catch (Exception e)
                {
                    ErrorText = e.Message;
                }
            });

            PlayCommand = new Command(() =>
            {
                if (PlayerState == MediaPlayerState.Ready)
                {
                    MediaPlayer.Start();

                    IsSeekable = true;
                }
                else
                {
                    MediaPlayer.Stop();
                }
            });

            PauseCommand = new Command(async () =>
            {
                if (PlayerState == MediaPlayerState.Playing)
                {
                    MediaPlayer.Pause();
                    _subtitleDelayCancelSource.Cancel();
                }
                else
                {
                    MediaPlayer.Start();
                    await ResumeSubtitleAsync();
                }
            });

            StreamInfoCommand = new Command(() =>
            {
                Properties = Properties == null ? MediaPlayer.GetStreamInfo() : null;
            });

            SubtitleCommand = new NavigationCommand<ListPage>(() => new SubtitleListPageViewModel());

            SeekBackwardCommand = new Command(async () => await Seek(-_seekUnit));
            SeekForwardCommand = new Command(async () => await Seek(_seekUnit));
        }
        public MainPageViewModel()
        {
            FileCommand = new NavigationCommand <ListPage>(() => new MediaListPageViewModel());

            StreamCommand = new NavigationCommand <InputUrlPage>();
        }
 public InputUrlPageViewModel()
 {
     OpenCommand = new NavigationCommand <PlayPage>(() => new PlayPageViewModel(UrlText),
                                                    () => !string.IsNullOrEmpty(UrlText));
 }