/// <summary> /// Creates player with set of necessary filters support. /// </summary> public override Player CreatePlayer(PlayerOutput playerOutput, IFilterBase filtersRequired) { VerifyObjectIsNotDisposed(); // if (playerOutput == null) { throw new ArgumentNullException("playerOutput"); } // if (filtersRequired is IAdjustable) { } return (new VlcPlayer(playerOutput, new InternalObjectsFactory(descriptor), this)); }
/// <summary> /// Creates player which can be used to control media playing. /// </summary> /// <returns>Player instance.</returns> public override Player CreatePlayer(PlayerOutput playerOutput) { VerifyObjectIsNotDisposed(); // if (playerOutput == null) { throw new ArgumentNullException("playerOutput"); } // return (new VlcPlayer(playerOutput, new InternalObjectsFactory(descriptor), this)); }
/// <summary> /// Creates player with set of necessary filters. /// </summary> public abstract Player CreatePlayer(PlayerOutput playerOutput, IFilterBase filtersRequired );
/// <summary> /// Creates player which can be used to control media playing. /// </summary> /// <returns>Player instance.</returns> public abstract Player CreatePlayer(PlayerOutput playerOutput);
public void SetOutput(PlayerOutput playerOutput) { if (playerOutput == null) { throw new ArgumentNullException("playerOutput"); } // VerifyObjectIsNotDisposed(); // if ((playerOutput.Files.Count == 0) && (playerOutput.NetworkStreams.Count == 0)) { // //addOption("--video-filter=adjust@my_label"); // return; } //string transcodeString = "vcodec=WMV2,vb=800,scale=1,acodec=wma,ab=128,channels=2"; const string transcodeString = "vcodec=WMV2,vb=1024,scale=1"; // Здесь media должна знать, будет ли она дублироваться на экран string duplicateString = (playerOutput.Window != null) ? "dst=display" : String.Empty; foreach (OutFile file in playerOutput.Files) { //dst=std{access=file,mux=ps,dst=\"{0}\"} string s = String.Format("dst=std[access=file,mux=ps,dst=\"{0}\"]", file.FileName); if (String.IsNullOrEmpty(duplicateString)) { duplicateString = s; } else { duplicateString += "," + s; } } foreach (OutputNetworkStream stream in playerOutput.NetworkStreams) { //dst=std{access=http,mux=asf,dst=172.28.1.4:8888} //dst=rtp{dst=1231232,mux=asf,port=1234,port-audio=12367,port-video=31236} string s; if (stream.Protocol != NetworkProtocol.RTP) { s = String.Format("dst=std[access={0},mux=asf,dst={1}:{2}]", stream.Protocol.ToString().ToLower(), stream.Ip, stream.Port); } else { s = String.Format("dst=rtp[dst={0},mux=asf,port={1},port-audio={2},port-video={3}]", stream.Ip, stream.Port, stream.RtpPortAudio, stream.RtpPortVideo); } if (String.IsNullOrEmpty(duplicateString)) { duplicateString = s; } else { duplicateString += "," + s; } } string optionsString = String.Format(":sout=#transcode[{0}]:duplicate[{1}]", transcodeString, duplicateString); addOption(optionsString.Replace('[', '{').Replace(']', '}')); }
internal VlcPlayer(PlayerOutput playerOutput, IInternalObjectsFactory internalObjectsFactory, IVolumeManager volumeManager) { if (playerOutput == null) { throw new ArgumentNullException("playerOutput"); } if (volumeManager == null) { throw new ArgumentNullException("volumeManager"); } if (internalObjectsFactory == null) { throw new ArgumentNullException("internalObjectsFactory"); } // this.playerOutput = playerOutput; this.volumeManager = volumeManager; this.internalObjectsFactory = internalObjectsFactory; // firstMediaPlayerInternal = this.internalObjectsFactory.CreateVlcMediaPlayerInternal(); secondMediaPlayerInternal = this.internalObjectsFactory.CreateVlcMediaPlayerInternal(); // initializeEventsEngine(); }