Ejemplo n.º 1
0
        private void InitializeVLCplayer()//Initialize VLC player using sourceprovider
        {
            this.sourceProvider = new VlcVideoSourceProvider(this.Dispatcher);
            var libDirectory = new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, "libvlc", IntPtr.Size == 4 ? "win-x86" : "win-x64"));

            sourceProvider.CreatePlayer(libDirectory, options);
        }
Ejemplo n.º 2
0
        public PinballFrontEndView()
        {
            InitializeComponent(); //Start WPF Components

            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // SETUP VLC LIBRARY
            ///////////////////////////////////////////////////////////////////////////////////////////////////

            //Create Video Source Provider
            sourceProvider = new VlcVideoSourceProvider(this.Dispatcher);
            sourceProvider.CreatePlayer(Model.VlcGlobal.GetVlcLibrary());
            sourceProvider.MediaPlayer.Log     += ((a, b) => { }); //Do nothing with log
            sourceProvider.MediaPlayer.Playing += MediaPlayer_Playing;
            //sourceProvider.MediaPlayer.VideoOutChanged += MediaPlayer_VideoOutChanged;

            //Bind source provider to image
            Playfield.SetBinding(Image.SourceProperty, new Binding(nameof(VlcVideoSourceProvider.VideoSource))
            {
                Source = sourceProvider
            });

            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // SETUP View Model
            ///////////////////////////////////////////////////////////////////////////////////////////////////
            viewModel        = new PinballFrontEnd.ViewModel.PinballFrontEndViewModel();
            this.DataContext = viewModel;

            viewModel.TableChanged += ViewModel_TableChanged;

            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // SETUP Delay Timers
            ///////////////////////////////////////////////////////////////////////////////////////////////////

            //Start Video Update Timer
            vidTimer          = new System.Timers.Timer(500); //Delays loading of video to allow fast switching
            vidTimer.Elapsed += VidTimer_Elapsed;

            //CurrentSource = new Uri(".");
            vidTimer.AutoReset = false;
            vidTimer.Start();

            showTimer           = new System.Timers.Timer(500);
            showTimer.Elapsed  += ShowTimer_Elapsed;
            showTimer.AutoReset = false;
            showTimer.Start();

            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // Other
            ///////////////////////////////////////////////////////////////////////////////////////////////////

            //Set to software render
            //RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;

            //Prevent the PC from going into sleep mode (keep monitors on)
            Nutmegz.UnManaged.PowerControl.PreventSleep();
        }
Ejemplo n.º 3
0
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            var currentAssembly  = Assembly.GetEntryAssembly();
            var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;
            var libDirectory     = new DirectoryInfo(System.IO.Path.Combine(currentDirectory, "libvlc", IntPtr.Size == 4 ? "win-x86" : "win-x64"));

            //this.vlcControl.SourceProvider.CreatePlayer(libDirectory);
            //this.vlcControl.SourceProvider.MediaPlayer.Play(new FileInfo(@"D:\迅雷下载\[阳光电影www.ygdy8.net].追龙.HD.720p.国语中字.mkv"));
            if (vlcVideoSourceProvider == null)
            {
                vlcVideoSourceProvider = new VlcVideoSourceProvider(this.Dispatcher);
                vlcVideoSourceProvider.CreatePlayer(libDirectory);
                SetBindings();
            }
        }
Ejemplo n.º 4
0
        public MediaView(ViewModel.PinballFrontEndViewModel viewModel)
        {
            //this.DataContext = this;
            InitializeComponent();
            this.viewModel   = viewModel;
            this.DataContext = this.viewModel;

            this.viewModel.TableChanged += ViewModel_TableChanged;

            ///////////////////////////////////////////////////////////////////////////////////////////////////
            // SETUP Delay Timers
            ///////////////////////////////////////////////////////////////////////////////////////////////////

            //Start Video Update Timer
            vidTimer          = new System.Timers.Timer(500);
            vidTimer.Elapsed += VidTimer_Elapsed;

            //CurrentSource = new Uri(".");
            vidTimer.AutoReset = false;
            vidTimer.Start();

            showTimer           = new System.Timers.Timer(500);
            showTimer.Elapsed  += ShowTimer_Elapsed;
            showTimer.AutoReset = false;
            showTimer.Start();



            // SETUP VLC LIBRARY

            //Create Video Source Provider
            sourceProvider = new VlcVideoSourceProvider(this.Dispatcher);
            sourceProvider.CreatePlayer(Model.VlcGlobal.GetVlcLibrary());
            sourceProvider.MediaPlayer.Log     += ((a, b) => { }); //Do nothing with log
            sourceProvider.MediaPlayer.Playing += MediaPlayer_Playing;

            //Bind source provider to image
            VideoImage.SetBinding(Image.SourceProperty, new Binding(nameof(VlcVideoSourceProvider.VideoSource))
            {
                Source = sourceProvider
            });
        }
Ejemplo n.º 5
0
        private VlcVideoSourceProvider CreatePlayer(int trackIdx)
        {
            VlcVideoSourceProvider ctl = new VlcVideoSourceProvider(Dispatcher);

            ctl.CreatePlayer(_vlcLibDir);
            ctl.MediaPlayer.SetMedia(_medialUrl);
            EventHandler <VlcMediaPlayerPlayingEventArgs> playingCb = null;

            playingCb = (s, e2) => {
                ctl.MediaPlayer.Video.Tracks.Current = ctl.MediaPlayer.Video.Tracks.All.ElementAt(trackIdx);
                if (ctl.MediaPlayer.Audio.Tracks.Count > 0)
                {
                    ctl.MediaPlayer.Audio.Tracks.Current = ctl.MediaPlayer.Audio.Tracks.All.First(); //disable
                }
                ctl.MediaPlayer.Playing -= playingCb;
            };
            ctl.MediaPlayer.Playing += playingCb;

            return(ctl);
        }
Ejemplo n.º 6
0
        private void OpenFile(string path)
        {
            _lastFile  = path;
            _medialUrl = $"file:///{path.Replace('\\', '/')}";

            VM.ClearVideoSources();

            var mainSrc = new VlcVideoSourceProvider(Dispatcher);

            mainSrc.CreatePlayer(_vlcLibDir);
            mainSrc.MediaPlayer.SetMedia(_medialUrl);

            mainSrc.MediaPlayer.Playing         += MediaPlayer_Playing;
            mainSrc.MediaPlayer.PositionChanged += MediaPlayer_PositionChanged;
            mainSrc.MediaPlayer.TimeChanged     += MediaPlayer_TimeChanged;
            mainSrc.MediaPlayer.EndReached      += MediaPlayer_EndReached;

            mainSrc.MediaPlayer.Play();

            VM.AddVideoSource(mainSrc);
            VM.MainSource = mainSrc;
        }