示例#1
0
 public VideoPlayerViewModel(INavigationService navigationService, MediaPlayerService playerService,
                             IVideoLibrary videoLibrary, IVolumeService volumeController, IBrightnessService brightnessController,
                             IOrientationService orientationService, IStatusBarService statusBarService)
 {
     App.DebugLog("");
     this.navigationService          = navigationService;
     this.playerService              = playerService;
     this.videoLibrary               = videoLibrary;
     this.volumeController           = volumeController;
     this.brightnessController       = brightnessController;
     this.orientationService         = orientationService;
     this.statusBarService           = statusBarService;
     PlayPauseCommand                = new DelegateCommand(TogglePlayPause);
     ToggleFavoriteCommand           = new DelegateCommand(ToggleFavorite);
     ToggleControlsVisibilityCommand = new DelegateCommand(ToggleControlsVisibility);
     ToggleAudioTracksCommand        = new DelegateCommand(ToggleAudioTracks);
     ToggleSubtitlesCommand          = new DelegateCommand(ToggleSubtitles);
     ToggleMediaInfoCommand          = new DelegateCommand(ToggleMediaInfo);
     SelectSubtitlesCommand          = new DelegateCommand <object>(SelectSubtitles, (e) => canChangeSubtitles);
     SelectAudioTrackCommand         = new DelegateCommand <object>(SelectAudioTrack, (e) => canChangeAudioTrack);
     MaxVolume = volumeController.GetMaxVolume();
     Volume    = volumeController.GetVolume();
     volumeController.VolumeChanged += VolumeController_VolumeChanged;
     Brightness     = Settings.VideoBrightness;
     favoriteScenes = new FavoritesCollection(favoriteSceneDuration);
 }
 public FoldersViewModel(IVideoLibrary videoLibrary)
 {
     App.DebugLog("");
     this.videoLibrary = videoLibrary;
     Folders           = new ObservableCollection <FolderItem>();
     ItemTappedCommand = new AsyncCommand <object>((item) => NavigateToVideosPage(item));
 }
        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 ConverterHelper(IVideoLibrary videoLibrary,
                               IFFmpegConverter fFmpegConverter, MediaPlayerBuilder playerService)
        {
            _videoLibrary    = videoLibrary;
            _fFmpegConverter = fFmpegConverter;
            _playerService   = playerService;

            _fFmpegConverter.ConversionProgressChanged += FFmpegConverter_ProgressChanged;
            _fFmpegConverter.ConversionStarted         += FFmpegConverter_ConversionStarted;
            _fFmpegConverter.ConversionEnded           += FFmpegConverter_ConversionEnded;
        }
 public FoldersViewModel(INavigationService navigationService, IVideoLibrary videoLibrary)
 {
     this.navigationService = navigationService;
     this.videoLibrary      = videoLibrary;
     Folders           = new ObservableCollection <FolderItem>();
     ItemTappedCommand = new Command <FolderItem>(async(item) => await NavigateToVideosPage(item));
     if (Xamarin.Forms.DesignMode.IsDesignModeEnabled)
     {
         Folders.Add(new FolderItem()
         {
             FolderName = "Folder1"
         });
         Folders.Add(new FolderItem()
         {
             FolderName = "Folder2"
         });
     }
 }
        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;
        }
        public TrimmerViewModel(IVideoLibrary videoLibrary, INavigationService navigationService,
                                MediaPlayerService playerService, IFFmpegConverter fFmpegConverter)
        {
            App.DebugLog("");
            this.videoLibrary      = videoLibrary;
            this.navigationService = navigationService;
            this.playerService     = playerService;
            this.fFmpegConverter   = fFmpegConverter;
            fFmpegConverter.ConversionProgressChanged += FFmpegConverter_ProgressChanged;
            fFmpegConverter.ConversionStarted         += FFmpegConverter_ConversionStarted;
            fFmpegConverter.ConversionEnded           += FFmpegConverter_ConversionEnded;

            MediaHelper = new MediaPlayerHelper(playerService);
            MediaHelper.IsPausedByUser        = true;
            MediaHelper.MediaPlayerReady     += MediaPlayerHelper_MediaPlayerReady;
            MediaHelper.PlaybackStateChanged += MediaHelper_PlaybackStateChanged;

            GoToNextFavSceneCommand  = new DelegateCommand(GoToNextFavScene);
            GoToPrevFavSceneCommand  = new DelegateCommand(GoToPrevFavScene);
            IncrementPositionCommand = new DelegateCommand <object>((e) => IncrementPosition(e));
            DecrementPositionCommand = new DelegateCommand <object>((e) => DecrementPosition(e));
            JumpToStartCommand       = new DelegateCommand(() => JumpToStart());
            TogglePlayPauseCommand   = new DelegateCommand(TogglePlayPause);

            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;
        }
 public FavoriteScenesViewModel(IVideoLibrary videoLibrary)
 {
     this.videoLibrary = videoLibrary;
     ItemTappedCommand = new AsyncCommand <object>((e) => OnItemClicked(e));
 }
示例#9
0
 public VideosViewModel(IVideoLibrary videoLibrary)
 {
     App.DebugLog("");
     this.videoLibrary = videoLibrary;
     ItemTappedCommand = new AsyncCommand <object>((item) => NavigateToPlayerPage(item));
 }
示例#10
0
 public VideosViewModel(INavigationService navigationService, IVideoLibrary videoLibrary)
 {
     this.navigationService = navigationService;
     this.videoLibrary      = videoLibrary;
     ItemTappedCommand      = new Command <VideoItem>(async(item) => await NavigateToPlayerPage(item));
 }
示例#11
0
 public FavoriteScenesViewModel(INavigationService navigationService, IVideoLibrary videoLibrary)
 {
     this.navigationService = navigationService;
     this.videoLibrary      = videoLibrary;
     ItemTappedCommand      = new DelegateCommand <object>((e) => OnItemClicked(e));
 }