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(); }
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; }
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); }
/// <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; }
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(); }
/// <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; } }
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; }
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); }
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); }
/// <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(); } }
/// <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 { } } }
/// <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(); } }
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; }
/// <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; }
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; }
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(); }
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(); }
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(); }
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 ===================== }
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); }
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); }
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); }
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; }
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; }
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); }
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; }
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(); }
/// <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; }
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; * }*/ }
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; }
/// <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(); } }
//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); }
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; }
/// <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; }
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(); }
public int GetHashCode(IMediaPlayerFactory obj) { return(((INativePointer)obj).Pointer.GetHashCode()); }
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; }
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); }
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(); }
/// <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; } } } }
public PlayerController(IDiskPlayer player, IMediaPlayerFactory playerFactory) { mPlayer = player; mPlayerFactory = playerFactory; }
/// <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(); } }
/// <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; } } } }
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(); }
/// <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; } } } }
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(); }
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(); }
public void Open(IMediaPlayerFactory factory, string s) { //m_videoPlayer.Open(media); // utilizabil mai tarziu }
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);*/ }