コード例 #1
0
        public Window1()
        {
            InitializeComponent();

            this.KeyDown += this.KeyPress;

            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
            p.BackColor = System.Drawing.Color.Black;
            windowsFormsHost1.Child = p;

            m_factory = new MediaPlayerFactory(true);
            m_player = m_factory.CreatePlayer<IVideoPlayer>();

            this.DataContext = m_player;

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = p.Handle;
            slider2.Value = m_player.Volume;

            this.show = "Futurama";
            this.loadManager();
            this.playEpisode();
        }
コード例 #2
0
 public MainWindow()
 {
     InitializeComponent();
     m_factory             = new MediaPlayerFactory(true);
     m_player              = m_factory.CreatePlayer <IDiskPlayer>();
     m_player.WindowHandle = this.VideoCanvas.Handle;
     m_player.Events.PlayerPositionChanged += Events_PlayerPositionChanged;
     m_player.Events.PlayerStopped         += Events_PlayerStopped;
     m_player.Events.MediaEnded            += Events_MediaEnded;
 }
コード例 #3
0
ファイル: BasicPlayer.cs プロジェクト: Pzkgw/Camera-Support
        public virtual void Open(IMediaPlayerFactory factory, string s)
        {
            if (m_currentMedia != null)
            {
                m_currentMedia.Dispose();
            }

            m_currentMedia = factory.CreateMedia <IMedia>(s);

            LibVlcMethods.libvlc_media_player_set_media(m_hMediaPlayer, ((INativePointer)m_currentMedia).Pointer);
            //LibVlcMethods.libvlc_media_release(((INativePointer)m_currentMedia).Pointer);
        }
コード例 #4
0
        /// <summary>
        /// Initialize nVLC Component
        /// </summary>
        private void Init_nVLC()
        {
            m_factory = new MediaPlayerFactory(true);
            m_player  = m_factory.CreatePlayer <IDiskPlayer>();

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = panel1.Handle;
        }
コード例 #5
0
        void RTSPway()
        {
            string[] options = { "--video-filter=transform", "--transform-type=270", "--network-caching=200" };
            factory = new MediaPlayerFactory(options);
            player  = factory.CreatePlayer <IVideoPlayer>();
            this.Dispatcher.Invoke((Action)(() =>
            {
                player.WindowHandle = new WindowInteropHelper(this).Handle;
            }));

            playStream();
        }
コード例 #6
0
ファイル: VLCStream.cs プロジェクト: uzbekdev1/main
 /// <summary>
 /// Stop audio source.
 /// </summary>
 ///
 /// <remarks><para>Stops audio source.</para>
 /// </remarks>
 ///
 public void Stop()
 {
     if (_mPlayer != null)
     {
         _mPlayer.Stop();
         _mMedia.Dispose();
         _mFactory.Dispose();
         _mPlayer  = null;
         _mMedia   = null;
         _mFactory = null;
     }
 }
コード例 #7
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            m_factory             = new MediaPlayerFactory(new string[] { "--audio-visual=goom" }, true);
            m_player              = m_factory.CreatePlayer <IVideoPlayer>();
            m_player.WindowHandle = panel1.Handle;

            m_presets               = Equalizer.Presets.ToDictionary(key => key.Index);
            comboBox1.DataSource    = m_presets.Values.ToList();
            comboBox1.DisplayMember = "Name";
            comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
        }
コード例 #8
0
ファイル: Form1.cs プロジェクト: Onemann/NDS20_WinPlayer
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            _mFactory = new MediaPlayerFactory(true);
            _mSourcePlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mSourcePlayer.Events.PlayerPlaying += new EventHandler(Events_PlayerPlaying);
            _mSourcePlayer.Mute = true;
            _mRenderPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mRenderPlayer.WindowHandle = panel1.Handle;
            _mInputMedia = _mFactory.CreateMedia<IMemoryInputMedia>(MediaStrings.Imem);
            SetupOutput(_mSourcePlayer.CustomRendererEx);
        }
コード例 #9
0
ファイル: Form1.cs プロジェクト: peerct/nVLC
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            m_factory      = new MediaPlayerFactory(true);
            m_sourcePlayer = m_factory.CreatePlayer <IVideoPlayer>();
            m_sourcePlayer.Events.PlayerPlaying += new EventHandler(Events_PlayerPlaying);
            m_sourcePlayer.Mute         = true;
            m_renderPlayer              = m_factory.CreatePlayer <IVideoPlayer>();
            m_renderPlayer.WindowHandle = panel1.Handle;
            m_inputMedia = m_factory.CreateMedia <IMemoryInputMedia>(MediaStrings.IMEM);
            SetupOutput(m_sourcePlayer.CustomRendererEx);
        }
コード例 #10
0
ファイル: VLCStream.cs プロジェクト: LubyRuffy/sitw_core
        /// <summary>
        /// Start audio source.
        /// </summary>
        ///
        /// <remarks>Starts audio source and return execution to caller. audio source
        /// object creates background thread and notifies about new frames with the
        /// help of <see cref="DataAvailable"/> event.</remarks>
        ///
        /// <exception cref="ArgumentException">audio source is not specified.</exception>
        ///
        public void Start()
        {
            if (!VlcHelper.VlcInstalled)
            {
                return;
            }
            if (!IsRunning)
            {
                // check source
                if (string.IsNullOrEmpty(_source))
                {
                    throw new ArgumentException("Audio source is not specified.");
                }

                DisposePlayer();

                _mFactory = new MediaPlayerFactory(false);

                _mPlayer = _mFactory.CreatePlayer <IVideoPlayer>();
                _mPlayer.Events.PlayerPlaying          += EventsPlayerPlaying;
                _mPlayer.Events.PlayerStopped          += EventsPlayerStopped;
                _mPlayer.Events.PlayerEncounteredError += EventsPlayerEncounteredError;

                string[] args = Arguments.Trim(',').Split(Environment.NewLine.ToCharArray(),
                                                          StringSplitOptions.RemoveEmptyEntries);
                List <String> inargs = args.ToList();
                inargs.Add(":sout=#transcode{vcodec=none}:Display");

                _mMedia = _mFactory.CreateMedia <IMedia>(_source, inargs.ToArray());

                _mPlayer.Open(_mMedia);

                GC.KeepAlive(_mFactory);
                GC.KeepAlive(_mPlayer);
                GC.KeepAlive(_mMedia);

                _needsSetup = true;
                var fc = new Func <SoundFormat, SoundFormat>(SoundFormatCallback);
                _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
                //.SetFormat(new SoundFormat(SoundType.S16N, RecordingFormat.SampleRate, RecordingFormat.Channels)));
                var ac = new AudioCallbacks {
                    SoundCallback = SoundCallback
                };
                _mPlayer.CustomAudioRenderer.SetCallbacks(ac);

                _mMedia.Parse(false);


                _mPlayer.Play();
            }
        }
コード例 #11
0
        /// <summary>
        /// Load the media file.
        /// </summary>
        /// <param name="mediaString">The media file to load.</param>
        /// <param name="mediaIndex">The media index type to load.</param>
        private void LoadMedia(string mediaString, int mediaIndex)
        {
            // If a media string has been selected.
            if (!String.IsNullOrEmpty(mediaString))
            {
                try
                {
                    // Create the player.
                    _player            = new MediaPlayerFactory(true);
                    _disk              = _player.CreatePlayer <IDiskPlayer>();
                    _disk.WindowHandle = this.panelMediaDisplay.Handle;

                    _disk.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(_disk_PlayerPositionChanged);
                    _disk.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(_disk_TimeChanged);
                    _disk.Events.MediaEnded            += new EventHandler(_disk_MediaEnded);
                    _disk.Events.PlayerStopped         += new EventHandler(_disk_MediaEnded);

                    // The initialisation sync.
                    UISync.Init(this);

                    // Open the correct media type.
                    switch (mediaIndex)
                    {
                    case 0:
                    case 1:
                        // Open the media file.
                        _media = _player.CreateMedia <IMediaFromFile>(mediaString);
                        break;

                    case 2:
                    default:
                        // Open the media file.
                        _media = _player.CreateMedia <IMedia>(mediaString);
                        break;
                    }

                    // Get the duration changed event.
                    _media.Events.DurationChanged += new EventHandler <MediaDurationChange>(_media_DurationChanged);

                    // Open the media.
                    _disk.Open(_media);
                    _media.Parse(true);

                    // Enable controls.
                    EnabledControls(true);
                    _hasClosed     = false;
                    this.AllowDrop = false;
                }
                catch { }
            }
        }
コード例 #12
0
        /// <summary>
        /// Start video source.
        /// </summary>
        ///
        /// <remarks>Starts video source and return execution to caller. Video source
        /// object creates background thread and notifies about new frames with the
        /// help of <see cref="NewFrame"/> event.</remarks>
        ///
        /// <exception cref="ArgumentException">Video source is not specified.</exception>
        ///
        public void Start()
        {
            if (!VlcHelper.VlcInstalled)
            {
                return;
            }
            Isstopping = false;
            if (!IsRunning && !_starting)
            {
                _starting = true;
                // check source
                if (string.IsNullOrEmpty(_source))
                {
                    throw new ArgumentException("Video source is not specified.");
                }

                DisposePlayer();

                _mFactory = new MediaPlayerFactory(false);

                _mPlayer = _mFactory.CreatePlayer <IVideoPlayer>();
                _mPlayer.Events.PlayerPlaying          += EventsPlayerPlaying;
                _mPlayer.Events.PlayerStopped          += EventsPlayerStopped;
                _mPlayer.Events.PlayerEncounteredError += EventsPlayerEncounteredError;


                _mMedia = _mFactory.CreateMedia <IMedia>(_source, Arguments);
                _mPlayer.Open(_mMedia);
                GC.KeepAlive(_mFactory);
                GC.KeepAlive(_mPlayer);
                GC.KeepAlive(_mMedia);

                _needsSetup = true;
                var fc = new Func <SoundFormat, SoundFormat>(SoundFormatCallback);
                _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
                var ac = new AudioCallbacks {
                    SoundCallback = SoundCallback
                };
                _mPlayer.CustomAudioRenderer.SetCallbacks(ac);


                _mPlayer.CustomRenderer.SetFormat(new BitmapFormat(FormatWidth, FormatHeight, ChromaType.RV24));
                _mPlayer.CustomRenderer.SetCallback(FrameCallback);

                _mMedia.Parse(true);
                _framesReceived = 0;
                _mPlayer.Play();
            }
        }
コード例 #13
0
ファイル: MainWindow.xaml.cs プロジェクト: GoshaDE/nVLC
        public MainWindow()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory();
            m_player = m_factory.CreatePlayer<IVideoPlayer>();
            m_videoImage.Initialize(m_player.CustomRendererEx);

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            slider2.Value = m_player.Volume;
        }
コード例 #14
0
        /// <summary>
        /// Closes the media player and releases all resources.
        /// </summary>
        public void CloseMedia()
        {
            if (_player != null)
            {
                // Close the media player.
                _disk.Stop();
                _disk.Dispose();
                _player.Dispose();
                _media.Dispose();
            }

            _player = null;
            _disk   = null;
            _media  = null;
        }
コード例 #15
0
        public MainWindow()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory();
            m_player  = m_factory.CreatePlayer <IVideoPlayer>();
            m_videoImage.Initialize(m_player.CustomRendererEx);

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            slider2.Value = m_player.Volume;
        }
コード例 #16
0
        public Player()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory(false);
            m_player  = m_factory.CreatePlayer <IDiskPlayer>();

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = pnlMovie.Handle;
            trackBar2.Value       = m_player.Volume;
            RenderResources();
        }
コード例 #17
0
        public PlayerForm()
        {
            InitializeComponent();

            _mFactory = new MediaPlayerFactory();
            _mPlayer  = _mFactory.CreatePlayer <IDiskPlayer>();

            _mPlayer.Events.PlayerPositionChanged += EventsPlayerPositionChanged;
            _mPlayer.Events.TimeChanged           += EventsTimeChanged;
            _mPlayer.Events.MediaEnded            += EventsMediaEnded;
            _mPlayer.Events.PlayerStopped         += EventsPlayerStopped;

            _mPlayer.WindowHandle = pnlMovie.Handle;
            trackBar2.Value       = _mPlayer.Volume;
            RenderResources();
        }
コード例 #18
0
ファイル: PlayerForm.cs プロジェクト: vmail/main
        public PlayerForm()
        {
            InitializeComponent();

            _mFactory = new MediaPlayerFactory();
            _mPlayer = _mFactory.CreatePlayer<IDiskPlayer>();

            _mPlayer.Events.PlayerPositionChanged += EventsPlayerPositionChanged;
            _mPlayer.Events.TimeChanged += EventsTimeChanged;
            _mPlayer.Events.MediaEnded += EventsMediaEnded;
            _mPlayer.Events.PlayerStopped += EventsPlayerStopped;

            _mPlayer.WindowHandle = pnlMovie.Handle;
            trackBar2.Value = _mPlayer.Volume;
            RenderResources();
        }
コード例 #19
0
ファイル: Subframe.cs プロジェクト: Onemann/NDS20_WinPlayer
        public Subframe(JsonObject paramSchedule)
        {
            InitializeComponent();

            JsonObjectCollection col = (JsonObjectCollection)paramSchedule;
            frameInfoStrc frameInfo = new frameInfoStrc();

            frameInfo.xPos = int.Parse(col["xPos"].GetValue().ToString());
            frameInfo.yPos = int.Parse(col["yPos"].GetValue().ToString());
            frameInfo.width = int.Parse(col["width"].GetValue().ToString());
            frameInfo.height = int.Parse(col["height"].GetValue().ToString());
            frameInfo.contentsFileName = (string)col["fileName"].GetValue();
            frameInfo.mute = bool.Parse(col["mute"].GetValue().ToString());

            if (frameInfo.width == 0)
            {
                this.WindowState = FormWindowState.Maximized;
            }
            else
            {
                this.Width = frameInfo.width;
                this.Height = frameInfo.height;

            }
            this.Location = new System.Drawing.Point(frameInfo.xPos, frameInfo.yPos);

            # region ==== Create Player ====
            m_factory = new MediaPlayerFactory(true);
            m_player = m_factory.CreatePlayer<IDiskPlayer>();
            m_player.AspectRatio = AspectRatioMode.Default;
            m_player.Mute = frameInfo.mute;

            m_player.WindowHandle = this.pnlPlayerBack.Handle;

            UISync.Init(this);
            #endregion ======================

            #region ==== Contents play ====
            FileInfo contentsFileInfo = new FileInfo(@frameInfo.contentsFileName);
            m_media = m_factory.CreateMedia<IMediaFromFile>(contentsFileInfo.FullName);

            m_player.Open(m_media);
            m_media.Parse(true);

            m_player.Play();
            #endregion =====================
        }
コード例 #20
0
ファイル: Form1.cs プロジェクト: todatamining/nVLC
        public Form1()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory();
            m_player  = m_factory.CreatePlayer <IDiskPlayer>();

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = panel1.Handle;
            trackBar2.Value       = m_player.Volume;

            UISync.Init(this);
        }
コード例 #21
0
ファイル: Form1.cs プロジェクト: Onemann/NDS20_WinPlayer
        public Form1()
        {
            InitializeComponent();

            _mFactory = new MediaPlayerFactory(true);
            _mPlayer = _mFactory.CreatePlayer<IDiskPlayer>();

            _mPlayer.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            _mPlayer.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            _mPlayer.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            _mPlayer.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);
            _mPlayer.AspectRatio = AspectRatioMode.Default;
            _mPlayer.WindowHandle = panel1.Handle;
            trackBar2.Value = _mPlayer.Volume > 0 ? _mPlayer.Volume : 0;

            UiSync.Init(this);
        }
コード例 #22
0
ファイル: Form1.cs プロジェクト: bossaia/alexandrialibrary
        public Form1()
        {
            InitializeComponent();

            m_factory = new MediaPlayerFactory();
            m_player = m_factory.CreatePlayer<IDiskPlayer>();

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = panel1.Handle;
            trackBar2.Value = m_player.Volume;

            UISync.Init(this);
        }
コード例 #23
0
        public VideoPanel()
        {
            InitializeComponent();

            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
            p.BackColor             = System.Drawing.Color.Black;
            windowsFormsHost1.Child = p;

            m_factory = new MediaPlayerFactory(true);
            m_player  = m_factory.CreatePlayer <IVideoPlayer>();

            this.DataContext = m_player;

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = p.Handle;
            slider2.Value         = m_player.Volume;
        }
コード例 #24
0
ファイル: MainWindow.xaml.cs プロジェクト: potmadu/P001DS003T
        public MainWindow()
        {
            InitializeComponent();

            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();
            p.BackColor = System.Drawing.Color.Black;
            windowsFormsHost1.Child = p;

            m_factory = new MediaPlayerFactory(true);
            m_player = m_factory.CreatePlayer<IVideoPlayer>();

            this.DataContext = m_player;

            m_player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player.WindowHandle = p.Handle;
            slider2.Value = m_player.Volume;
        }
コード例 #25
0
        public MediaPlayer()
        {
            InitializeComponent();

            fFactory = new MediaPlayerFactory(FIND_LIBVLC);
            fPlayer  = fFactory.CreatePlayer <IDiskPlayer>();

            fPlayer.Events.PlayerPositionChanged += Events_PlayerPositionChanged;
            fPlayer.Events.TimeChanged           += Events_TimeChanged;
            fPlayer.Events.MediaEnded            += Events_MediaEnded;
            fPlayer.Events.PlayerStopped         += Events_PlayerStopped;

            fPlayer.WindowHandle = pnlVideo.Handle;

            trkVolume.Value = Math.Max(0, fPlayer.Volume);
            trkVolume_Scroll(null, null);

            fMedia = null;

            UISync.Init(this);
        }
コード例 #26
0
ファイル: PlayerVLC.cs プロジェクト: WesleyYep/ispyconnect
        public PlayerVLC(string titleText, MainForm mf)
        {
            MF = mf;
            InitializeComponent();
            var arguments = new[] { "--file-caching="+MainForm.Conf.VLCFileCache };
            _mFactory = new MediaPlayerFactory(arguments);
            _mPlayer = _mFactory.CreatePlayer<IDiskPlayer>();

            _mPlayer.Events.PlayerPositionChanged += EventsPlayerPositionChanged;
            _mPlayer.Events.TimeChanged += EventsTimeChanged;
            _mPlayer.Events.MediaEnded += EventsMediaEnded;
            _mPlayer.Events.PlayerStopped += EventsPlayerStopped;

            _mPlayer.WindowHandle = pnlMovie.Handle;

             if (_mPlayer.Volume>=trackBar2.Minimum && _mPlayer.Volume<=trackBar2.Maximum)
                trackBar2.Value = _mPlayer.Volume;

             RenderResources();
             _titleText = titleText;
             chkRepeatAll.Checked = MainForm.VLCRepeatAll;
        }
コード例 #27
0
        public VlcPlayer()
        {
            InitializeComponent();


            System.Windows.Forms.Panel p = new System.Windows.Forms.Panel();

            p.BackColor = System.Drawing.Color.Transparent;
            windowsFormsHost1.Opacity = 0.5;
            windowsFormsHost1.Child   = p;


            m_factory = new MediaPlayerFactory(true);
            m_player  = m_factory.CreatePlayer <IVideoPlayer>();

            m_media = m_factory.CreateMedia <IMediaFromFile>(@"E:\Render Library\Movie paths\Dance+SFS2.avi");
            // m_media.Events.DurationChanged += new EventHandler<MediaDurationChange>(Events_DurationChanged);
            //m_media.Events.StateChanged += new EventHandler<MediaStateChange>(Events_StateChanged);

            m_player.Open(m_media);
            m_media.Parse(true);
            m_player.Play();
        }
コード例 #28
0
        /// <summary>
        /// Close the player.
        /// </summary>
        private void ClosePlayer()
        {
            if (_player != null)
            {
                trackBarMain.Enabled = false;
                trackBarMain.Value   = 0;
                labelTime.Text       = "00:00:00";
                labelDuration.Text   = "00:00:00";
                EnabledOnCloseControls(false);

                // Close the media player.
                _disk.Stop();
                _disk.Dispose();
                _player.Dispose();
                _media.Dispose();
            }

            _player        = null;
            _disk          = null;
            _media         = null;
            _hasClosed     = true;
            this.AllowDrop = true;
        }
コード例 #29
0
ファイル: MainSend.cs プロジェクト: Pzkgw/Camera-Support
        public MainSend()
        {
            _mFactory = new MediaPlayerFactory(opt,//new string[] { },
                                               @"C:\Program Files (x86)\VideoLAN\VLC", true, new CLogger());

            InputMedia = _mFactory.CreateMedia <IMemoryInputMedia>(MediaStrings.IMEM);

            Player = _mFactory.CreatePlayer <IVideoPlayer>();


            Player.Events.PlayerPlaying += new EventHandler(Events_PlayerPlaying);

            /*
             * //DateTime _dt;
             *
             * for (int i = 0; i < 2; i++)//while (true)
             * {
             * //_dt = DateTime.Now;
             *
             * if (started) ToggleRunningMedia(false);
             *
             * //_dt = DateTime.Now;
             * //Console.WriteLine(string.Format(" {0:00}:{1:00}:{2:00}.{3:000}    {4}",
             * //   _dt.Hour, _dt.Minute, _dt.Second, _dt.Millisecond, "Stop"));
             *
             *
             *
             *
             ++si;                if (si >= s.Length) si = 0;
             * //_dt = DateTime.Now;
             * //Console.WriteLine(string.Format(" {0:00}:{1:00}:{2:00}.{3:000}    {4}{5}",
             * //_dt.Hour, _dt.Minute, _dt.Second, _dt.Millisecond, "Start", Environment.NewLine));
             *
             * started = true;
             * }*/
        }
コード例 #30
0
        public void Initialize(ILogger logger, Func<IVideoHost> getHost)
        {
            if (logger == null)
                throw new ArgumentNullException("logger");
            if (getHost == null)
                throw new ArgumentNullException("getHost");

            this.logger = logger;
            this.getHost = getHost;

            panel = new System.Windows.Forms.Panel();
            panel.BackColor = System.Drawing.Color.Black;
            formHost.Child = panel;

            playerFactory = new MediaPlayerFactory(logger);
            player = playerFactory.CreatePlayer<IVlcVideoPlayer>();

            this.DataContext = player;

            player.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            player.WindowHandle = panel.Handle;
            volumeSlider.Value = player.Volume;
        }
コード例 #31
0
ファイル: VLCStream.cs プロジェクト: vmail/main
 /// <summary>
 /// Stop audio source.
 /// </summary>
 /// 
 /// <remarks><para>Stops audio source.</para>
 /// </remarks>
 /// 
 public void Stop()
 {
     if (_mPlayer != null)
     {
         _mPlayer.Stop();
         _mMedia.Dispose();
         _mFactory.Dispose();
         _mPlayer = null;
         _mMedia = null;
         _mFactory = null;
     }
 }
コード例 #32
0
ファイル: VLCStream.cs プロジェクト: vmail/main
        /// <summary>
        /// Start audio source.
        /// </summary>
        /// 
        /// <remarks>Starts audio source and return execution to caller. audio source
        /// object creates background thread and notifies about new frames with the
        /// help of <see cref="DataAvailable"/> event.</remarks>
        /// 
        /// <exception cref="ArgumentException">audio source is not specified.</exception>
        /// 
        public void Start()
        {
            if (!VlcHelper.VlcInstalled)
                return;
            if (!IsRunning)
            {
                // check source
                if (string.IsNullOrEmpty(_source))
                    throw new ArgumentException("Audio source is not specified.");

                DisposePlayer();

                _mFactory = new MediaPlayerFactory(false);

                _mPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
                _mPlayer.Events.PlayerPlaying += EventsPlayerPlaying;
                _mPlayer.Events.PlayerStopped += EventsPlayerStopped;
                _mPlayer.Events.PlayerEncounteredError += EventsPlayerEncounteredError;

                string[] args = Arguments.Trim(',').Split(Environment.NewLine.ToCharArray(),
                                                                                StringSplitOptions.RemoveEmptyEntries);
                List<String> inargs = args.ToList();
                inargs.Add(":sout=#transcode{vcodec=none}:Display");

                _mMedia = _mFactory.CreateMedia<IMedia>(_source, inargs.ToArray());

                _mPlayer.Open(_mMedia);

                GC.KeepAlive(_mFactory);
                GC.KeepAlive(_mPlayer);
                GC.KeepAlive(_mMedia);

                _needsSetup = true;
                var fc = new Func<SoundFormat, SoundFormat>(SoundFormatCallback);
                _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
                var ac = new AudioCallbacks {SoundCallback = SoundCallback};
                _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
                _mMedia.Events.ParsedChanged += EventsParsedChanged;
                _mMedia.Parse(true);

                _mPlayer.Play();

            }
        }
コード例 #33
0
        //public VideoWindow()
        private VideoWindow(FileInfo imgSrc, FileInfo videoSrc)
        {
            InitializeComponent();

            this.Width = SystemParameters.PrimaryScreenWidth;
            this.Height = SystemParameters.PrimaryScreenHeight;
            this.Left = 0;
            this.Top = 0;
            // this.Topmost = true;
            //imgSrc = new FileInfo(@"C:\Users\Administrator\Videos\thumbnails\b.jpg");
            //videoSrc = new FileInfo(@"C:\Users\Administrator\Videos\b.mp4");

            img = new BitmapImage(new Uri(imgSrc.FullName));
            fileName = videoSrc.FullName;

            //根据分辨率不同,调整DetialWindow出现的位置
            if (this.Width > 1300)
            {
                size = SystemParameters.PrimaryScreenWidth*0.415;
            }
            else if (this.Width < 1300 && this.Width > 1000)
            {
                size = SystemParameters.PrimaryScreenWidth*0.415;
            }
            if (img.Width >= img.Height)
            {
                w = size;
                h = size/img.Width*img.Height;
            }
            else
            {
                h = size;
                w = size/img.Height*img.Width;
            }
            gd.Background = new ImageBrush(img);

            stdStart = (Storyboard) this.Resources["start"];
            stdEnd = (Storyboard) this.Resources["end"];
            stdEnd2 = (Storyboard) this.Resources["end_2"];
            stdVideoFinish = (Storyboard) Resources["VideoFinish"];

            stdStart.Completed += (a, b) =>
                {
                    //stdMiddle.Begin();
                    TimeSplit.Visibility = Visibility.Visible;
                    var datPrs = new DoubleAnimation(0, 600, new Duration(TimeSpan.FromMilliseconds(1000)));
                    process.BeginAnimation(ProgressBar.WidthProperty, datPrs);

                    ///播放视频
                    m_media = m_factory.CreateMedia<IMediaFromFile>(fileName);
                    m_media.Events.DurationChanged += Events_DurationChanged;
                    m_media.Events.StateChanged += Events_StateChanged;
                    m_player.Open(m_media);

                    m_media.Parse(true);
                    m_player.Play();
                    //System.Drawing.Size s = m_player.GetVideoSize(0);
                    //m_player.TakeSnapShot(0, @"C:\");
                    DispatcherTimer timer = new DispatcherTimer();
                    timer.Interval = TimeSpan.FromMilliseconds(1000);
                    timer.Tick += (c, d) =>
                        {
                            gd.Background = null;
                            timer.Stop();
                        };
                    timer.Start();
                };

            stdEnd.Completed += (c, d) =>
                {
                    CloseAnmit();
                    stdEnd2.Begin();
                };
            stdEnd2.Completed += (e, f) => { this.Close(); };
            this.Loaded += MainWindow_Loaded;

            m_factory = new MediaPlayerFactory();
            m_player = m_factory.CreatePlayer<IVideoPlayer>();
            m_videoImage.Initialize(m_player.CustomRendererEx);

            m_player.Events.PlayerPositionChanged +=
                new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);
        }
コード例 #34
0
ファイル: VLCStream.cs プロジェクト: ispysoftware/iSpy
        private void WorkerThread()
        {
            bool file = false;
            try
            {
                if (File.Exists(_source))
                {
                    file = true;
                }
            }
            catch
            {
                // ignored
            }

            if (_mFactory == null)
            {
                var args = new List<string>
                    {
                        "-I",
                        "dumy",
                        "--ignore-config",
                        "--no-osd",
                        "--disable-screensaver",
                        "--plugin-path=./plugins",
                        "--novideo"
                    };
                if (file)
                    args.Add("--file-caching=3000");
                try
                {
                    var l2 = args.ToList();
                    l2.AddRange(_arguments);

                    l2 = l2.Distinct().ToList();
                    _mFactory = new MediaPlayerFactory(l2.ToArray());
                }
                catch (Exception ex)
                {
                    Logger.LogExceptionToFile(ex, "VLC Audio");
                    Logger.LogMessageToFile("VLC arguments are: " + String.Join(",", args.ToArray()), "VLC Audio");
                    Logger.LogMessageToFile("Using default VLC configuration.", "VLC Audio");
                    _mFactory = new MediaPlayerFactory(args.ToArray());
                }
                GC.KeepAlive(_mFactory);
            }

            _mMedia = file ? _mFactory.CreateMedia<IMediaFromFile>(_source) : _mFactory.CreateMedia<IMedia>(_source);

            _mMedia.Events.DurationChanged += EventsDurationChanged;
            _mMedia.Events.StateChanged += EventsStateChanged;

            try
            {
                _mPlayer?.Dispose();
            }
            catch
            {
                // ignored
            }
            _mPlayer = null;

            _mPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mPlayer.Events.TimeChanged += EventsTimeChanged;

            var fc = new Func<SoundFormat, SoundFormat>(SoundFormatCallback);
            _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
            var ac = new AudioCallbacks { SoundCallback = SoundCallback };
            _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
            _mPlayer.CustomAudioRenderer.SetExceptionHandler(Handler);
            GC.KeepAlive(_mPlayer);

            _needsSetup = true;
            _stopping = false;

            _mPlayer.Open(_mMedia);
            _mMedia.Parse(true);
            _mPlayer.Delay = 0;

            _framesReceived = 0;
            Duration = Time = 0;
            LastFrame = DateTime.MinValue;

            //check if file source (isseekable in _mPlayer is not reliable)
            Seekable = false;
            try
            {
                var p = Path.GetFullPath(_mMedia.Input);
                Seekable = !string.IsNullOrEmpty(p);
            }
            catch (Exception)
            {
                Seekable = false;
            }
            _mPlayer.WindowHandle = IntPtr.Zero;
            _mPlayer.Play();

            _stopEvent.WaitOne();

            if (!Seekable && !_stopRequested)
            {
                AudioFinished?.Invoke(this, new PlayingFinishedEventArgs(ReasonToFinishPlaying.DeviceLost));
            }
            else
            {
                AudioFinished?.Invoke(this, new PlayingFinishedEventArgs(ReasonToFinishPlaying.StoppedByUser));
            }

            DisposePlayer();
            _stopEvent?.Close();
            _stopEvent = null;
        }
コード例 #35
0
ファイル: Discovery.cs プロジェクト: wxmiswxm/Camera-Support
 /// <summary>
 /// Cauta camere prin retea
 /// </summary>
 /// <returns></returns>
 internal Discovery(IMediaPlayerFactory factory)
 {
     //IMediaDiscoverer seeker;
     //seeker = factory.CreateMediaDiscoverer("Seeker"); //new MediaDiscoverer(new IntPtr(), "Seeker");
     //IMediaList ml = seeker.MediaList;
 }
コード例 #36
0
ファイル: VLCStream.cs プロジェクト: mrgoodman2014/iSpy
        private void WorkerThread()
        {
            bool file = false;

            try
            {
                if (File.Exists(Source))
                {
                    file = true;
                }
            }
            catch
            {
                // ignored
            }

            if (_mFactory == null)
            {
                var args = new List <string>
                {
                    "-I",
                    "dumy",
                    "--ignore-config",
                    "--no-osd",
                    "--disable-screensaver",
                    "--plugin-path=./plugins"
                };
                if (file)
                {
                    args.Add("--file-caching=3000");
                }
                try
                {
                    var l2 = args.ToList();
                    l2.AddRange(_arguments);

                    l2        = l2.Distinct().ToList();
                    _mFactory = new MediaPlayerFactory(l2.ToArray());
                }
                catch (Exception ex)
                {
                    Logger.LogException(ex, "VLC Stream");
                    Logger.LogMessage("VLC arguments are: " + string.Join(",", args.ToArray()), "VLC Stream");
                    Logger.LogMessage("Using default VLC configuration.", "VLC Stream");
                    _mFactory = new MediaPlayerFactory(args.ToArray());
                }
                GC.KeepAlive(_mFactory);
            }

            var vss = Source;

            if (!_modeAudio)
            {
                vss = Tokenise(vss);
            }

            _mMedia = file ? _mFactory.CreateMedia <IMediaFromFile>(vss) : _mFactory.CreateMedia <IMedia>(vss);

            _mMedia.Events.DurationChanged += EventsDurationChanged;
            _mMedia.Events.StateChanged    += EventsStateChanged;

            if (_mPlayer != null)
            {
                try
                {
                    _mPlayer?.Dispose();
                }
                catch
                {
                    // ignored
                }
                _mPlayer = null;
            }


            _mPlayer = _mFactory.CreatePlayer <IVideoPlayer>();
            _mPlayer.Events.TimeChanged += EventsTimeChanged;

            var fc = new Func <SoundFormat, SoundFormat>(SoundFormatCallback);

            _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
            var ac = new AudioCallbacks {
                SoundCallback = SoundCallback
            };

            _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
            _mPlayer.CustomAudioRenderer.SetExceptionHandler(Handler);

            if (!_modeAudio)
            {
                _mPlayer.CustomRenderer.SetCallback(FrameCallback);
                _mPlayer.CustomRenderer.SetExceptionHandler(Handler);
            }
            GC.KeepAlive(_mPlayer);

            _needsSetup = true;
            _mPlayer.CustomRenderer.SetFormat(new BitmapFormat(_source.settings.vlcWidth, _source.settings.vlcHeight, ChromaType.RV24));
            _mPlayer.Open(_mMedia);
            _mMedia.Parse(true);

            _mPlayer.Delay = 0;

            Duration  = Time = 0;
            LastFrame = DateTime.MinValue;


            //check if file source (isseekable in _mPlayer is not reliable)
            Seekable = false;
            try
            {
                var p = Path.GetFullPath(_mMedia.Input);
                Seekable = !string.IsNullOrEmpty(p);
            }
            catch (Exception)
            {
                Seekable = false;
            }
            _mPlayer.WindowHandle = IntPtr.Zero;

            _videoQueue = new ConcurrentQueue <Bitmap>();
            _audioQueue = new ConcurrentQueue <byte[]>();


            _mPlayer.Play();
            _abort = new ManualResetEvent(false);
            EventManager();

            if (Seekable)
            {
                PlayingFinished?.Invoke(this, new PlayingFinishedEventArgs(ReasonToFinishPlaying.StoppedByUser));
                AudioFinished?.Invoke(this, new PlayingFinishedEventArgs(ReasonToFinishPlaying.StoppedByUser));
            }
            else
            {
                PlayingFinished?.Invoke(this, new PlayingFinishedEventArgs(_res));
                AudioFinished?.Invoke(this, new PlayingFinishedEventArgs(_res));
            }

            DisposePlayer();
            _abort.Close();
        }
コード例 #37
0
 public int GetHashCode(IMediaPlayerFactory obj)
 {
     return(((INativePointer)obj).Pointer.GetHashCode());
 }
コード例 #38
0
ファイル: VLCStream.cs プロジェクト: vmail/main
        private void DisposePlayer()
        {
            if (_mFactory == null)
                return;
            try
            {
                _mPlayer.Dispose();
            }
            catch { }
            try
            {
                _mFactory.Dispose();
            }
            catch { }
            try
            {
                _mMedia.Dispose();
            }
            catch { }

            _mPlayer = null;
            _mFactory = null;
            _mMedia = null;
        }
コード例 #39
0
ファイル: Form1.cs プロジェクト: programetica/ClinicAbierta
        public Form1()
        {
            InitializeComponent();
            Screen Srn = Screen.PrimaryScreen;             /*  This works well...  */

            tempHeight = Srn.Bounds.Height;
            tempWidth  = Srn.Bounds.Width;

            this.Height              = tempHeight;
            this.Width               = tempWidth;
            tableLayoutPanel1.Width  = tempWidth;
            tableLayoutPanel1.Height = (tempHeight * 9 / 10);
            //tableLayoutPanel1.Height = tempHeight;

            m_factory = new IMediaPlayerFactory[4];

            m_media = new IMedia[4];

            m_filemedia = new IMediaFromFile[4];

            m_player = new IDiskPlayer[4];

            m_playerr = new IVideoPlayer[4];

            m_factory1 = new MediaPlayerFactory(true);
            m_factory2 = new MediaPlayerFactory(true);
            m_factory3 = new MediaPlayerFactory(true);
            m_factory4 = new MediaPlayerFactory(true);
            m_factory5 = new MediaPlayerFactory(true);
            m_factory6 = new MediaPlayerFactory(true);
            m_factory7 = new MediaPlayerFactory(true);
            m_factory8 = new MediaPlayerFactory(true);

            m_player1 = m_factory1.CreatePlayer <IDiskPlayer>();
            m_player2 = m_factory2.CreatePlayer <IDiskPlayer>();
            m_player3 = m_factory3.CreatePlayer <IDiskPlayer>();
            m_player4 = m_factory4.CreatePlayer <IDiskPlayer>();

            m_player5 = m_factory5.CreatePlayer <IVideoPlayer>();
            m_player6 = m_factory6.CreatePlayer <IVideoPlayer>();
            m_player7 = m_factory7.CreatePlayer <IVideoPlayer>();
            m_player8 = m_factory8.CreatePlayer <IVideoPlayer>();

            // m_player1.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            // m_player1.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            // m_player1.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            // m_player1.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            // m_player2.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            // m_player2.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            // m_player2.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            // m_player2.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            // m_player3.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            // m_player3.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            // m_player3.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            // m_player3.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            // m_player4.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            // m_player4.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
            // m_player4.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            // m_player4.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);

            m_player5.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player5.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player5.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player5.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            /*
             * m_player6.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
             * m_player6.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
             * m_player6.Events.MediaEnded += new EventHandler(Events_MediaEnded);
             * m_player6.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);
             *
             * m_player7.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
             * m_player7.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
             * m_player7.Events.MediaEnded += new EventHandler(Events_MediaEnded);
             * m_player7.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);
             *
             * m_player8.Events.PlayerPositionChanged += new EventHandler<MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
             * m_player8.Events.TimeChanged += new EventHandler<MediaPlayerTimeChanged>(Events_TimeChanged);
             * m_player8.Events.MediaEnded += new EventHandler(Events_MediaEnded);
             * m_player8.Events.PlayerStopped += new EventHandler(Events_PlayerStopped);
             */

            m_player1.WindowHandle = panel1.Handle;

            // You don't need volume control when every computer already has it.
            trackBar2.Value = 100;//m_player1.Volume > 0 ? m_player1.Volume : 0;
            /* Fix trackbar functionality later */

            m_player2.WindowHandle = panel2.Handle;
            /* trackBar3.Value = m_player2.Volume > 0 ? m_player2.Volume : 0; */

            m_player3.WindowHandle = panel3.Handle;

            m_player4.WindowHandle = panel4.Handle;

            m_player5.WindowHandle = panel1.Handle;

            m_player6.WindowHandle = panel2.Handle;

            m_player7.WindowHandle = panel3.Handle;

            m_player8.WindowHandle = panel4.Handle;

            UISync.Init(this);
        }
コード例 #40
0
        public VlcPlayer()
        {
            string[] args = new string[]
            {
                "-I",
                "dumy",
                "--ignore-config",
                "--no-osd",
                "--disable-screensaver",
                "--plugin-path=./plugins",
                "--audio-filter=equalizer",
                "--equalizer-preamp=11.9",
                "--equalizer-bands=0 0 0 0 0 0 0 0 0 0"
            };

            m_factory            = new MediaPlayerFactory(args);
            m_player             = m_factory.CreatePlayer <IVideoPlayer>();
            m_media_list         = m_factory.CreateMediaList <IMediaList>();
            m_media_list_preview = m_factory.CreateMediaList <IMediaList>();

            m_presets = Implementation.Equalizer.Presets.ToDictionary(key => key.Index);

            m_equalizer = new Implementation.Equalizer(m_presets[0]);

            m_equalizer.Preamp = Equalizer.ArrBandValue[10].PreAmp / 10;

            for (int i = 0; i < Equalizer.ArrBandValue.Count() - 2; i++)
            {
                m_equalizer.Bands[i].Amplitude = Equalizer.ArrBandValue[i].Gain / 10;

                Console.WriteLine("Amplitude " + m_equalizer.Bands[i].Amplitude + " : " + m_equalizer.Preamp);
            }

            m_player.SetEqualizer(m_equalizer);
            m_equalizer.Dispose();

            //Background Video ==========
            m_list_player = m_factory.CreateMediaListPlayer <IMediaListPlayer>(m_media_list);

            m_memRender = m_list_player.InnerPlayer.CustomRenderer;
            m_memRender.SetCallback(delegate(Bitmap frame)
            {
                Video = (Bitmap)frame.Clone();
            });

            // 4:3 aspect ratio resolutions: 640×480, 800×600, 960×720, 1024×768, 1280×960, 1400×1050, 1440×1080 , 1600×1200, 1856×1392, 1920×1440, and 2048×1536
            //16:9 aspect ratio resolutions: 1024×576, 1152×648, 1280×720, 1366×768, 1600×900, 1920×1080, 2560×1440 and 3840×2160

            m_memRender.SetFormat(new BitmapFormat(1024, 576, ChromaType.RV32));
            m_list_player.PlaybackMode     = PlaybackMode.Loop;
            m_list_player.InnerPlayer.Mute = true;
            //Background Video

            //Preview Background video ==========
            m_list_preview_player = m_factory.CreateMediaListPlayer <IMediaListPlayer>(m_media_list_preview);
            m_list_preview_player.PlaybackMode     = PlaybackMode.Loop;
            m_list_preview_player.InnerPlayer.Mute = true;
            //Preview Background video

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);
            m_player.Events.TimeChanged           += new EventHandler <MediaPlayerTimeChanged>(Events_TimeChanged);
            m_player.Events.MediaEnded            += new EventHandler(Events_MediaEnded);
            m_player.Events.PlayerStopped         += new EventHandler(Events_PlayerStopped);

            videoDir = Main_Form.iniFileHelper.Read("Video", "Video Path");

            if (videoDir == string.Empty || !Directory.Exists(videoDir))
            {
                videoDir = BGVideoPath + @"VIDEO_NATURE\";
            }

            GetVideoBG(videoDir);

            SetAudioOutputDevice();
        }
コード例 #41
0
ファイル: VLCStream.cs プロジェクト: WildGenie/ispyconnect
        /// <summary>
        /// Start video source.
        /// </summary>
        /// 
        /// <remarks>Starts video source and return execution to caller. Video source
        /// object creates background thread and notifies about new frames with the
        /// help of <see cref="NewFrame"/> event.</remarks>
        /// 
        /// <exception cref="ArgumentException">Video source is not specified.</exception>
        /// 
        public void Start()
        {
            lock (_lock)
            {
                if (!VlcHelper.VlcInstalled)
                    return;
                if (_stoprequested)
                    return;
                if (!IsRunning && !_starting)
                {
                    _starting = true;
                    // check source
                    if (string.IsNullOrEmpty(_source))
                        throw new ArgumentException("Audio source is not specified.");

                    bool init = _mFactory == null;
                    if (init)
                    {
                        _mFactory = new MediaPlayerFactory();
                        _mPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
                        _mPlayer.Events.PlayerPlaying += EventsPlayerPlaying;
                        _mPlayer.Events.TimeChanged += EventsTimeChanged;
                        var fc = new Func<SoundFormat, SoundFormat>(SoundFormatCallback);
                        _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
                        var ac = new AudioCallbacks { SoundCallback = SoundCallback };
                        _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
                        _mPlayer.CustomAudioRenderer.SetExceptionHandler(Handler);
                    }

                    bool file = false;
                    try
                    {
                        if (File.Exists(_source))
                        {
                            file = true;
                        }
                    }
                    catch
                    {

                    }
                    if (file)
                        _mMedia = _mFactory.CreateMedia<IMediaFromFile>(_source);
                    else
                        _mMedia = _mFactory.CreateMedia<IMedia>(_source);

                    _mMedia.AddOptions(_arguments);

                    _mMedia.Events.DurationChanged -= EventsDurationChanged;
                    _mMedia.Events.StateChanged -= EventsStateChanged;
                    _mMedia.Events.DurationChanged += EventsDurationChanged;
                    _mMedia.Events.StateChanged += EventsStateChanged;

                    _needsSetup = true;

                    _mPlayer.Open(_mMedia);
                    _mMedia.Parse(true);
                    _framesReceived = 0;
                    Duration = Time = 0;
                    LastFrame = DateTime.MinValue;
                    _mPlayer.Play();

                    //check if file source (isseekable in _mPlayer is not reliable)
                    Seekable = false;
                    try
                    {
                        var p = Path.GetFullPath(_mMedia.Input);
                        Seekable = !String.IsNullOrEmpty(p);
                    }
                    catch (Exception)
                    {
                        Seekable = false;
                    }
                }
            }
        }
コード例 #42
0
 public PlayerController(IDiskPlayer player, IMediaPlayerFactory playerFactory)
 {
     mPlayer        = player;
     mPlayerFactory = playerFactory;
 }
コード例 #43
0
ファイル: VLCStream.cs プロジェクト: vmail/main
        /// <summary>
        /// Start video source.
        /// </summary>
        /// 
        /// <remarks>Starts video source and return execution to caller. Video source
        /// object creates background thread and notifies about new frames with the
        /// help of <see cref="NewFrame"/> event.</remarks>
        /// 
        /// <exception cref="ArgumentException">Video source is not specified.</exception>
        /// 
        public void Start()
        {
            if (!VlcHelper.VlcInstalled)
                return;
            Isstopping = false;
            if (!IsRunning && !_starting)
            {
                _starting = true;
                // check source
                if (string.IsNullOrEmpty(_source))
                    throw new ArgumentException("Video source is not specified.");

                DisposePlayer();

                _mFactory = new MediaPlayerFactory(false);

                _mPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
                _mPlayer.Events.PlayerPlaying += EventsPlayerPlaying;
                _mPlayer.Events.PlayerStopped += EventsPlayerStopped;
                _mPlayer.Events.PlayerEncounteredError += EventsPlayerEncounteredError;

                _mMedia = _mFactory.CreateMedia<IMedia>(_source, Arguments);
                _mPlayer.Open(_mMedia);
                GC.KeepAlive(_mFactory);
                GC.KeepAlive(_mPlayer);
                GC.KeepAlive(_mMedia);

                _needsSetup = true;
                var fc = new Func<SoundFormat, SoundFormat>(SoundFormatCallback);
                _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
                var ac = new AudioCallbacks { SoundCallback = SoundCallback };
                _mPlayer.CustomAudioRenderer.SetCallbacks(ac);

                _mPlayer.CustomRenderer.SetFormat(new BitmapFormat(FormatWidth, FormatHeight, ChromaType.RV24));
                _mPlayer.CustomRenderer.SetCallback(FrameCallback);

                _mMedia.Parse(true);
                _framesReceived = 0;
                _mPlayer.Play();
            }
        }
コード例 #44
0
ファイル: VLCStream.cs プロジェクト: WildGenie/ispyconnect
        /// <summary>
        /// Start video source.
        /// </summary>
        /// 
        /// <remarks>Starts video source and return execution to caller. Video source
        /// object creates background thread and notifies about new frames with the
        /// help of <see cref="NewFrame"/> event.</remarks>
        /// 
        /// <exception cref="ArgumentException">Video source is not specified.</exception>
        /// 
        public void Start()
        {
            lock (_lock)
            {
                if (!VlcHelper.VlcInstalled)
                    return;
                if (_stoprequested)
                    return;

                if (!IsRunning && !_starting)
                {
                    _starting = true;
                    if (string.IsNullOrEmpty(_source))
                        throw new ArgumentException("Video source is not specified.");

                    bool init = _mFactory == null;

                    bool file = false;
                    try
                    {
                        if (File.Exists(_source))
                        {
                            file = true;
                        }
                    }
                    catch
                    {

                    }

                    if (init)
                    {
                        var args = new List<string>
                        {
                            "-I",
                            "dumy",
                            "--ignore-config",
                            "--no-osd",
                            "--disable-screensaver",
                            "--plugin-path=./plugins"
                        };
                        if (file)
                            args.Add("--file-caching=3000");

                        _mFactory = new MediaPlayerFactory(args.ToArray());
                        _mPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
                        _mPlayer.Events.PlayerPlaying += EventsPlayerPlaying;
                        _mPlayer.Events.TimeChanged += EventsTimeChanged;
                        var fc = new Func<SoundFormat, SoundFormat>(SoundFormatCallback);
                        _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
                        var ac = new AudioCallbacks { SoundCallback = SoundCallback };
                        _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
                        _mPlayer.CustomRenderer.SetCallback(FrameCallback);
                        _mPlayer.CustomRenderer.SetExceptionHandler(Handler);
                        _mPlayer.CustomAudioRenderer.SetExceptionHandler(Handler);
                    }

                    if (file)
                        _mMedia = _mFactory.CreateMedia<IMediaFromFile>(_source);
                    else
                        _mMedia = _mFactory.CreateMedia<IMedia>(_source);

                    _mMedia.AddOptions(_arguments);

                    _mMedia.Events.DurationChanged -= EventsDurationChanged;
                    _mMedia.Events.StateChanged -= EventsStateChanged;
                    _mMedia.Events.DurationChanged += EventsDurationChanged;
                    _mMedia.Events.StateChanged += EventsStateChanged;

                    _needsSetup = true;
                    _mPlayer.CustomRenderer.SetFormat(new BitmapFormat(FormatWidth, FormatHeight, ChromaType.RV24));

                    _mPlayer.Open(_mMedia);
                    _mMedia.Parse(true);

                    _framesReceived = 0;
                    Duration = Time = 0;
                    LastFrame = DateTime.MinValue;
                    _mPlayer.Play();

                    //check if file source (isseekable in _mPlayer is not reliable)
                    Seekable = false;
                    try
                    {
                        var p = Path.GetFullPath(_mMedia.Input);
                        Seekable = !String.IsNullOrEmpty(p);
                    }
                    catch (Exception)
                    {
                        Seekable = false;
                    }
                }
            }
        }
コード例 #45
0
ファイル: VLCStream.cs プロジェクト: vavavr00m/ispyconnect
        private void WorkerThread()
        {
            bool file = false;
            try
            {
                if (File.Exists(_source))
                {
                    file = true;
                }
            }
            catch
            {

            }

            if (_mFactory == null)
            {
                var args = new List<string>
                    {
                        "-I",
                        "dumy",
                        "--ignore-config",
                        "--no-osd",
                        "--disable-screensaver",
                        "--plugin-path=./plugins"
                    };
                if (file)
                    args.Add("--file-caching=3000");
                try
                {
                    var l2 = args.ToList();
                    l2.AddRange(_arguments);

                    l2 = l2.Distinct().ToList();
                    _mFactory = new MediaPlayerFactory(l2.ToArray());
                }
                catch (Exception ex)
                {
                    MainForm.LogExceptionToFile(ex, "VLC Stream");
                    MainForm.LogMessageToFile("VLC arguments are: " + String.Join(",", args.ToArray()), "VLC Stream");
                    MainForm.LogMessageToFile("Using default VLC configuration.", "VLC Stream");
                    _mFactory = new MediaPlayerFactory(args.ToArray());
                }
                GC.KeepAlive(_mFactory);
            }

            if (file)
                _mMedia = _mFactory.CreateMedia<IMediaFromFile>(_source);
            else
                _mMedia = _mFactory.CreateMedia<IMedia>(_source);

            _mMedia.Events.DurationChanged += EventsDurationChanged;
            _mMedia.Events.StateChanged += EventsStateChanged;

            if (_mPlayer != null)
            {
                try
                {
                    _mPlayer.Dispose();
                }
                catch
                {

                }
                _mPlayer = null;
            }

            _mPlayer = _mFactory.CreatePlayer<IVideoPlayer>();
            _mPlayer.Events.TimeChanged += EventsTimeChanged;

            var fc = new Func<SoundFormat, SoundFormat>(SoundFormatCallback);
            _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
            var ac = new AudioCallbacks { SoundCallback = SoundCallback };

            _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
            _mPlayer.CustomAudioRenderer.SetExceptionHandler(Handler);

            _mPlayer.CustomRenderer.SetCallback(FrameCallback);
            _mPlayer.CustomRenderer.SetExceptionHandler(Handler);
            GC.KeepAlive(_mPlayer);

            _needsSetup = true;
            _stopping = false;
            _mPlayer.CustomRenderer.SetFormat(new BitmapFormat(FormatWidth, FormatHeight, ChromaType.RV24));
            _mPlayer.Open(_mMedia);
            _mMedia.Parse(true);

            _mPlayer.Delay = 0;

            _framesReceived = 0;
            Duration = Time = 0;
            LastFrame = DateTime.MinValue;

            //check if file source (isseekable in _mPlayer is not reliable)
            Seekable = false;
            try
            {
                var p = Path.GetFullPath(_mMedia.Input);
                Seekable = !String.IsNullOrEmpty(p);
            }
            catch (Exception)
            {
                Seekable = false;
            }
            _mPlayer.WindowHandle = IntPtr.Zero;

            _videoQueue = new ConcurrentQueue<Bitmap>();
            _audioQueue = new ConcurrentQueue<byte[]>();
            _eventing = new Thread(EventManager) { Name = "ffmpeg eventing", IsBackground = true };
            _eventing.Start();

            _mPlayer.Play();

            _stopEvent.WaitOne();

            if (_eventing != null && !_eventing.Join(0))
                _eventing.Join();

            if (!Seekable && !_stopRequested)
            {
                if (PlayingFinished != null)
                    PlayingFinished(this, ReasonToFinishPlaying.DeviceLost);
                if (AudioFinished != null)
                    AudioFinished(this, ReasonToFinishPlaying.DeviceLost);

            }
            else
            {
                if (PlayingFinished != null)
                    PlayingFinished(this, ReasonToFinishPlaying.StoppedByUser);
                if (AudioFinished != null)
                    AudioFinished(this, ReasonToFinishPlaying.StoppedByUser);
            }

            DisposePlayer();

            Free();
        }
コード例 #46
0
ファイル: VLCStream.cs プロジェクト: gxliu/ispyconnect
        /// <summary>
        /// Start video source.
        /// </summary>
        ///
        /// <remarks>Starts video source and return execution to caller. Video source
        /// object creates background thread and notifies about new frames with the
        /// help of <see cref="NewFrame"/> event.</remarks>
        ///
        /// <exception cref="ArgumentException">Video source is not specified.</exception>
        ///
        public void Start()
        {
            lock (_lock)
            {
                if (!VlcHelper.VlcInstalled)
                {
                    return;
                }
                if (_stoprequested)
                {
                    return;
                }

                if (!IsRunning && !_starting)
                {
                    _starting = true;
                    if (string.IsNullOrEmpty(_source))
                    {
                        throw new ArgumentException("Video source is not specified.");
                    }

                    bool init = _mFactory == null;

                    bool file = false;
                    try
                    {
                        if (File.Exists(_source))
                        {
                            file = true;
                        }
                    }
                    catch
                    {
                    }

                    if (init)
                    {
                        var args = new List <string>
                        {
                            "-I",
                            "dumy",
                            "--ignore-config",
                            "--no-osd",
                            "--disable-screensaver",
                            "--plugin-path=./plugins"
                        };
                        if (file)
                        {
                            args.Add("--file-caching=3000");
                        }

                        _mFactory = new MediaPlayerFactory(args.ToArray());
                        _mPlayer  = _mFactory.CreatePlayer <IVideoPlayer>();
                        _mPlayer.Events.PlayerPlaying += EventsPlayerPlaying;
                        _mPlayer.Events.TimeChanged   += EventsTimeChanged;
                        var fc = new Func <SoundFormat, SoundFormat>(SoundFormatCallback);
                        _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
                        var ac = new AudioCallbacks {
                            SoundCallback = SoundCallback
                        };
                        _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
                        _mPlayer.CustomRenderer.SetCallback(FrameCallback);
                        _mPlayer.CustomRenderer.SetExceptionHandler(Handler);
                        _mPlayer.CustomAudioRenderer.SetExceptionHandler(Handler);
                    }



                    if (file)
                    {
                        _mMedia = _mFactory.CreateMedia <IMediaFromFile>(_source);
                    }
                    else
                    {
                        _mMedia = _mFactory.CreateMedia <IMedia>(_source);
                    }

                    _mMedia.AddOptions(_arguments);

                    _mMedia.Events.DurationChanged -= EventsDurationChanged;
                    _mMedia.Events.StateChanged    -= EventsStateChanged;
                    _mMedia.Events.DurationChanged += EventsDurationChanged;
                    _mMedia.Events.StateChanged    += EventsStateChanged;

                    _needsSetup = true;
                    _mPlayer.CustomRenderer.SetFormat(new BitmapFormat(FormatWidth, FormatHeight, ChromaType.RV24));

                    _mPlayer.Open(_mMedia);
                    _mMedia.Parse(true);

                    _framesReceived = 0;
                    Duration        = Time = 0;
                    LastFrame       = DateTime.MinValue;
                    _mPlayer.Play();

                    //check if file source (isseekable in _mPlayer is not reliable)
                    Seekable = false;
                    try
                    {
                        var p = Path.GetFullPath(_mMedia.Input);
                        Seekable = !String.IsNullOrEmpty(p);
                    }
                    catch (Exception)
                    {
                        Seekable = false;
                    }
                }
            }
        }
コード例 #47
0
ファイル: PlayerForm.cs プロジェクト: zhyinty/CrazyKTVSongMgr
        public PlayerForm(Form ParentForm, List <string> PlayerSongInfoList)
        {
            InitializeComponent();

            this.Owner         = ParentForm;
            SongId             = PlayerSongInfoList[0];
            SongLang           = PlayerSongInfoList[1];
            SongSinger         = PlayerSongInfoList[2];
            SongSongName       = PlayerSongInfoList[3];
            SongTrack          = PlayerSongInfoList[4];
            SongFilePath       = PlayerSongInfoList[5];
            dvRowIndex         = PlayerSongInfoList[6];
            UpdateDataGridView = PlayerSongInfoList[7];

            this.Text = "【" + SongLang + "】" + SongSinger + " - " + SongSongName;

            m_factory             = new MediaPlayerFactory(true);
            m_player              = m_factory.CreatePlayer <IDiskPlayer>();
            m_player.WindowHandle = Player_Panel.Handle;

            Player_ProgressTrackBar.ProgressBarValue = 0;
            Player_ProgressTrackBar.TrackBarValue    = 0;

            m_media = m_factory.CreateMedia <IMediaFromFile>(SongFilePath);
            m_player.Open(m_media);
            m_media.Parse(true);
            m_player.Mute = true;
            m_player.Play();

            Thread.Sleep(1000);

            bool WaitTrackInfo = false;

            while (!WaitTrackInfo)
            {
                if (m_player.AudioTrackCount > 1)
                {
                    foreach (Declarations.TrackDescription TrackDesc in m_player.AudioTracksInfo)
                    {
                        if (TrackDesc.Id != -1)
                        {
                            WaitTrackInfo = true;
                        }
                    }
                }
            }

            List <int> TrackIdList = new List <int>();

            foreach (Declarations.TrackDescription TrackDesc in m_player.AudioTracksInfo)
            {
                TrackIdList.Add(TrackDesc.Id);
            }

            if (TrackIdList.Count > 2)
            {
                switch (SongTrack)
                {
                case "1":
                    if (m_player.AudioTrack != TrackIdList[1])
                    {
                        m_player.AudioTrack = TrackIdList[1];
                    }
                    break;

                case "2":
                    if (m_player.AudioTrack != TrackIdList[2])
                    {
                        m_player.AudioTrack = TrackIdList[2];
                    }
                    break;
                }
                Player_CurrentChannelValue_Label.Text = (TrackIdList.IndexOf(m_player.AudioTrack) == Convert.ToInt32(SongTrack)) ? "伴唱" : "人聲";
            }
            else
            {
                string ChannelValue = "";
                switch (SongTrack)
                {
                case "1":
                    if (m_player.Channel != AudioChannelType.Left)
                    {
                        m_player.Channel = AudioChannelType.Left;
                    }
                    ChannelValue = "1";
                    break;

                case "2":
                    if (m_player.Channel != AudioChannelType.Right)
                    {
                        m_player.Channel = AudioChannelType.Right;
                    }
                    ChannelValue = "2";
                    break;
                }
                Player_CurrentChannelValue_Label.Text = (ChannelValue == SongTrack) ? "伴唱" : "人聲";
            }

            m_player.Events.PlayerPositionChanged += new EventHandler <MediaPlayerPositionChanged>(Events_PlayerPositionChanged);

            m_player.Position = 0;
            m_player.Mute     = false;

            timer.Tick    += new EventHandler(timer_Tick);
            timer.Interval = 500;
            timer.Start();
        }
コード例 #48
0
        private void WorkerThread()
        {
            bool file = false;

            try
            {
                if (File.Exists(_source))
                {
                    file = true;
                }
            }
            catch
            {
            }



            if (_mFactory == null)
            {
                var args = new List <string>
                {
                    "-I",
                    "dumy",
                    "--ignore-config",
                    "--no-osd",
                    "--disable-screensaver",
                    "--plugin-path=./plugins"
                };
                if (file)
                {
                    args.Add("--file-caching=3000");
                }
                try
                {
                    var l2 = args.ToList();
                    l2.AddRange(_arguments);

                    l2        = l2.Distinct().ToList();
                    _mFactory = new MediaPlayerFactory(l2.ToArray());
                }
                catch (Exception ex)
                {
                    MainForm.LogExceptionToFile(ex);
                    MainForm.LogMessageToFile("VLC arguments are: " + String.Join(",", args.ToArray()));
                    MainForm.LogMessageToFile("Using default VLC configuration.");
                    _mFactory = new MediaPlayerFactory(args.ToArray());
                }
                GC.KeepAlive(_mFactory);
            }

            if (file)
            {
                _mMedia = _mFactory.CreateMedia <IMediaFromFile>(_source);
            }
            else
            {
                _mMedia = _mFactory.CreateMedia <IMedia>(_source);
            }

            _mMedia.Events.DurationChanged += EventsDurationChanged;
            _mMedia.Events.StateChanged    += EventsStateChanged;

            if (_mPlayer != null)
            {
                try
                {
                    _mPlayer.Dispose();
                }
                catch
                {
                }
                _mPlayer = null;
            }


            _mPlayer = _mFactory.CreatePlayer <IVideoPlayer>();
            _mPlayer.Events.TimeChanged += EventsTimeChanged;

            var fc = new Func <SoundFormat, SoundFormat>(SoundFormatCallback);

            _mPlayer.CustomAudioRenderer.SetFormatCallback(fc);
            var ac = new AudioCallbacks {
                SoundCallback = SoundCallback
            };

            _mPlayer.CustomAudioRenderer.SetCallbacks(ac);
            _mPlayer.CustomAudioRenderer.SetExceptionHandler(Handler);

            _mPlayer.CustomRenderer.SetCallback(FrameCallback);
            _mPlayer.CustomRenderer.SetExceptionHandler(Handler);
            GC.KeepAlive(_mPlayer);

            _needsSetup = true;
            _stopping   = false;
            _mPlayer.CustomRenderer.SetFormat(new BitmapFormat(FormatWidth, FormatHeight, ChromaType.RV24));
            _mPlayer.Open(_mMedia);
            _mMedia.Parse(true);

            _mPlayer.Delay = 0;

            _framesReceived = 0;
            Duration        = Time = 0;
            LastFrame       = DateTime.MinValue;


            //check if file source (isseekable in _mPlayer is not reliable)
            Seekable = false;
            try
            {
                var p = Path.GetFullPath(_mMedia.Input);
                Seekable = !String.IsNullOrEmpty(p);
            }
            catch (Exception)
            {
                Seekable = false;
            }
            _mPlayer.WindowHandle = IntPtr.Zero;
            _mPlayer.Play();



            _stopEvent.WaitOne();

            if (!Seekable && !_stopRequested)
            {
                if (PlayingFinished != null)
                {
                    PlayingFinished(this, ReasonToFinishPlaying.DeviceLost);
                }
                if (AudioFinished != null)
                {
                    AudioFinished(this, ReasonToFinishPlaying.DeviceLost);
                }
            }
            else
            {
                if (PlayingFinished != null)
                {
                    PlayingFinished(this, ReasonToFinishPlaying.StoppedByUser);
                }
                if (AudioFinished != null)
                {
                    AudioFinished(this, ReasonToFinishPlaying.StoppedByUser);
                }
            }

            DisposePlayer();
        }
コード例 #49
0
 public void Open(IMediaPlayerFactory factory, string s)
 {
     //m_videoPlayer.Open(media); // utilizabil mai tarziu
 }
コード例 #50
-1
ファイル: Player.cs プロジェクト: Konzertheld/SharpShuffle
        public Player()
        {
            // Initialization (TODO: Make all the stuff configurable, of course)
            Playlist = new Playlist();
            PlayedHistory = new List<Song>();
            totalHistory = new List<Song>();
            Queue = new List<Song>();
            RandomSettings = new PlayerRandomSettings(100, true);
            PlaybackState = TP_PLAYBACKSTATE.Stopped;
            playbackMode = TP_PLAYBACKMODE.Playlist;
            playbackDirection = TP_PLAYBACKDIRECTION.Forward;
            PlaybackLoggingMode = TP_PLAYBACKLOG.After80Percent;
            historyPosition = -1;

            // VLC Initialization
            string[] args = new string[] {
                "--ignore-config",
                @"--plugin-path=C:\Program Files (x86)\VideoLAN\VLC\plugins",
                //,"--vout-filter=deinterlace", "--deinterlace-mode=blend"
            };

            instance = new VlcInstance(args);
            vlc = null;
            factory = new MediaPlayerFactory();
            /*vlc = factory.CreatePlayer<IVideoPlayer>();
            vlc.Events.MediaEnded += new EventHandler(Events_MediaEnded);
            vlc.Events.TimeChanged += new EventHandler<Declarations.Events.MediaPlayerTimeChanged>(Events_TimeChanged);
            vlc.Events.PlayerPlaying += new EventHandler(Events_PlayerPlaying);*/
        }