public VideoPlayerViewModel(MediaPlayerBuilder playerService,
                                    IVideoLibrary videoLibrary, IVolumeService volumeController, IBrightnessService brightnessController,
                                    IOrientationService orientationService, IStatusBarService statusBarService, IFileService fileService)
        {
            App.DebugLog("");
            this.videoLibrary       = videoLibrary;
            this.orientationService = orientationService;
            this.statusBarService   = statusBarService;
            FilePickerVM            = new FilePickerViewModel(fileService);
            FilePickerVM.SubtitleFileTappedCommand = new Command <object>(o => SubtitleFileTapped(o));
            ToggleFavoriteCommand           = new Command(ToggleFavorite);
            ToggleControlsVisibilityCommand = new Command(ToggleControlsVisibility);
            ToggleAudioTracksCommand        = new Command(ToggleAudioTracks);
            ToggleSubtitlesCommand          = new Command(ToggleSubtitles);
            ToggleMediaInfoCommand          = new Command(ToggleMediaInfo);
            SelectSubtitlesCommand          = new Command <object>(SelectSubtitles, (e) => canChangeSubtitles);
            SelectAudioTrackCommand         = new Command <object>(SelectAudioTrack, (e) => canChangeAudioTrack);
            OpenSubtitlesFromFileCommand    = new Command(OpenSubtitlesFilePicker);

            volumeViewModel     = new VolumeViewModel(volumeController);
            brightnessViewModel = new BrightnessViewModel(brightnessController);

            favoriteScenes = new FavoritesCollection(favoriteSceneDuration);

            VlcPlayerHelper = new VlcPlayerHelper(playerService);
        }
 public void ToggleAudioTracks()
 {
     if (AudioTracks.Count == 0)
     {
         AudioTracks.AddRange(VlcPlayerHelper.GetAudioTracks());
     }
     IsAudioTracksPopupVisible = !IsAudioTracksPopupVisible;
     IsControlVisible          = false;
 }
        private void SelectAudioTrack(object audioTrackInfo)
        {
            canChangeAudioTrack = false;
            var selected = (AudioTrackInfo)audioTrackInfo;

            foreach (var audio in AudioTracks)
            {
                audio.IsSelected = false;
            }
            selected.IsSelected = true;
            VlcPlayerHelper.SetAudioTrack(selected.Id);
            canChangeAudioTrack       = true;
            IsAudioTracksPopupVisible = false;
            IsControlVisible          = false;
        }
Ejemplo n.º 4
0
        public TrimmerViewModel(IVideoLibrary videoLibrary, MediaPlayerBuilder playerService,
                                ConverterHelper converterHelper, IFileService fileService)
        {
            App.DebugLog("");
            _videoLibrary    = videoLibrary;
            _converterHelper = converterHelper;
            _fileService     = fileService;
            _converterHelper.ConversionStarted  += ConversionStarted;
            _converterHelper.ConversionProgress += ConversionProgress;
            _converterHelper.ConversionEnded    += ConversionEnded;

            FilePickerVM = new FilePickerViewModel(fileService);
            FilePickerVM.SubtitleFileTappedCommand = new Command <object>(o => SubtitleFileTapped(o));

            VlcPlayerHelper              = new VlcPlayerHelper(playerService);
            vlcPlayerHelper.PlayerReady += VlcPlayerHelper_PlayerReady;

            GoToNextFavSceneCommand  = new Command(GoToNextFavScene);
            GoToPrevFavSceneCommand  = new Command(GoToPrevFavScene);
            IncrementPositionCommand = new Command <object>((e) => IncrementPosition(e));
            DecrementPositionCommand = new Command <object>((e) => DecrementPosition(e));
            JumpToStartCommand       = new Command(() => JumpToStart());
            ChooseSubtitlesCommand   = new Command(ChooseSubtitles);
            ClearSubtitlesCommand    = new Command(ClearSubtitles);

            OffsetOptions = new ObservableCollection <OffsetOption>()
            {
                new OffsetOption("1 sec", TimeSpan.FromSeconds(1)),
                new OffsetOption("10 sec", TimeSpan.FromSeconds(10)),
                new OffsetOption("1 min", TimeSpan.FromMinutes(1)),
                new OffsetOption("10 min", TimeSpan.FromMinutes(10)),
            };
            SelectedOffsetOption = OffsetOptions.First();

            EndPosition   = TimeSpan.FromMinutes(1);
            TotalDuration = EndPosition;
        }