public LibVlcMono MakeSecondMediaPlayer(Control ownerControl, string videoFileName, EventHandler onVideoLoaded, EventHandler onVideoEnded) { LibVlcMono newVlc = new LibVlcMono(); newVlc._libVlc = this._libVlc; newVlc._libVlcDLL = this._libVlcDLL; newVlc._ownerControl = ownerControl; if (ownerControl != null) { newVlc._parentForm = ownerControl.FindForm(); } newVlc.OnVideoLoaded = onVideoLoaded; newVlc.OnVideoEnded = onVideoEnded; if (!string.IsNullOrEmpty(videoFileName)) { IntPtr media = NativeMethods.libvlc_media_new_path(_libVlc, Encoding.UTF8.GetBytes(videoFileName + "\0")); newVlc._mediaPlayer = NativeMethods.libvlc_media_player_new_from_media(media); NativeMethods.libvlc_media_release(media); // Linux: libvlc_media_player_set_xdrawable (_mediaPlayer, xdrawable); // Mac: libvlc_media_player_set_nsobject (_mediaPlayer, view); var ownerHandle = ownerControl == null ? IntPtr.Zero : ownerControl.Handle; NativeMethods.libvlc_media_player_set_hwnd(newVlc._mediaPlayer, ownerHandle); // windows if (onVideoEnded != null) { newVlc._videoEndTimer = new Timer { Interval = 500 }; newVlc._videoEndTimer.Tick += VideoEndTimerTick; newVlc._videoEndTimer.Start(); } NativeMethods.libvlc_media_player_play(newVlc._mediaPlayer); newVlc._videoLoadedTimer = new Timer { Interval = 500 }; newVlc._videoLoadedTimer.Tick += newVlc.VideoLoadedTimer_Tick; newVlc._videoLoadedTimer.Start(); } return(newVlc); }
public LibVlcMono MakeSecondMediaPlayer(Control ownerControl, string videoFileName, EventHandler onVideoLoaded, EventHandler onVideoEnded) { LibVlcMono newVlc = new LibVlcMono(); newVlc._libVlc = this._libVlc; newVlc._libVlcDLL = this._libVlcDLL; newVlc._ownerControl = ownerControl; if (ownerControl != null) newVlc._parentForm = ownerControl.FindForm(); newVlc.OnVideoLoaded = onVideoLoaded; newVlc.OnVideoEnded = onVideoEnded; if (!string.IsNullOrEmpty(videoFileName)) { IntPtr media = NativeMethods.libvlc_media_new_path(_libVlc, Encoding.UTF8.GetBytes(videoFileName + "\0")); newVlc._mediaPlayer = NativeMethods.libvlc_media_player_new_from_media(media); NativeMethods.libvlc_media_release(media); // Linux: libvlc_media_player_set_xdrawable (_mediaPlayer, xdrawable); // Mac: libvlc_media_player_set_nsobject (_mediaPlayer, view); var ownerHandle = ownerControl == null ? IntPtr.Zero : ownerControl.Handle; NativeMethods.libvlc_media_player_set_hwnd(newVlc._mediaPlayer, ownerHandle); // windows if (onVideoEnded != null) { newVlc._videoEndTimer = new Timer { Interval = 500 }; newVlc._videoEndTimer.Tick += VideoEndTimerTick; newVlc._videoEndTimer.Start(); } NativeMethods.libvlc_media_player_play(newVlc._mediaPlayer); newVlc._videoLoadedTimer = new Timer { Interval = 500 }; newVlc._videoLoadedTimer.Tick += newVlc.VideoLoadedTimer_Tick; newVlc._videoLoadedTimer.Start(); } return newVlc; }