C#
VB
C++
Sends a text message to all connected clients.
[DispIdAttribute(4)]void WriteMessage(string Message)
<DispIdAttribute(4)>Sub WriteMessage( _ByVal Message As String _)
[DispIdAttribute(4)]void WriteMessage(String^ Message)
Message
A System.String containing the message to send to all connected clients.
On the client side, the message can be received using ReadMessage.
using Leadtools;using Leadtools.Multimedia;using LeadtoolsMultimediaExamples.Fixtures;public bool _result = false;public CaptureAndPlayCtrlForm _serverAndClient = new CaptureAndPlayCtrlForm();bool _msgSent = false;CaptureCtrl _captureCtrl;PlayCtrl _playCtrl;LMNetMux _pMux;LMNetDmx _pDemux;const string _networkUrl = @"ltsf://127.0.0.1:27015"; // network stream urlconst string TestMessage = "LEAD NETWORK";public void WriteMessageExample(){// reference the capture control_captureCtrl = _serverAndClient.CaptureCtrl;// reference the play control_playCtrl = _serverAndClient.PlayCtrl;try{// try to find a video cameraif (_captureCtrl.VideoDevices["Logitech"] == null)throw new Exception("No Logitech video device available");_captureCtrl.VideoDevices["Logitech"].Selected = true;// select a video compressor_captureCtrl.VideoCompressors.Mpeg4.Selected = true;// set the target output file_captureCtrl.TargetFormat = TargetFormatType.NET;_captureCtrl.TargetFile = _networkUrl;if (_captureCtrl.IsModeAvailable(CaptureMode.Video)){// just 10 seconds of capture time_captureCtrl.TimeLimit = 10;_captureCtrl.UseTimeLimit = true;_captureCtrl.Preview = true;// subscribe to the started and progress events for this example// we will connect a client after the capture starts// and send a test message after 5 seconds._captureCtrl.Started += new EventHandler(CaptureCtrl_Started);_captureCtrl.Progress += new ProgressEventHandler(CaptureCtrl_Progress);// ready the capture graph in order to get the LNMetMux instance_captureCtrl.ReadyCapture(CaptureMode.Video);// get the network multiplexer reference_pMux = _captureCtrl.GetSubObject(CaptureObject.TargetFilter) as LMNetMux;if (_pMux != null){// set some mux settings_pMux.LiveSource = true;}// start capture_captureCtrl.StartCapture(CaptureMode.Video);// we'll loop on the state and pump messages for this example.// but you should not need to if running from a Windows Forms application.while (_captureCtrl.State == CaptureState.Running|| _playCtrl.State == PlayState.Running){Application.DoEvents();}// release the mux and demux COM objectsif (_pMux != null)Marshal.ReleaseComObject(_pMux);if (_pDemux != null)Marshal.ReleaseComObject(_pDemux);}}catch (Exception){_result = false;}}void CaptureCtrl_Progress(object sender, ProgressEventArgs e){// for this test we will send a message after// 5 secs of capture timeif (e.time > 5000 && !_msgSent){_pMux.WriteMessage(TestMessage);Console.WriteLine("Server sent message");_msgSent = true;}}void CaptureCtrl_Started(object sender, EventArgs e){StartClient();}private void StartClient(){_playCtrl.SourceFile = _networkUrl;_pDemux = _playCtrl.GetSubObject(PlayObject.Splitter) as LMNetDmx;_serverAndClient.TestTimer.Interval = 100;_serverAndClient.TestTimer.Tick += new EventHandler(PlayTimer_Tick);_serverAndClient.TestTimer.Start();}void PlayTimer_Tick(object sender, EventArgs e){_serverAndClient.TestTimer.Enabled = false;if (_pDemux != null){string msg = _pDemux.ReadMessage();// set the result to what we expectif (msg == TestMessage){_result = true;Console.WriteLine("Client received message");}}_serverAndClient.TestTimer.Enabled = true;}
Imports LeadtoolsImports Leadtools.MultimediaImports LeadtoolsMultimediaExamples.FixturesPublic _result As Boolean = FalsePublic _serverAndClient As CaptureAndPlayCtrlForm = New CaptureAndPlayCtrlForm()Private _msgSent As Boolean = FalsePrivate _captureCtrl As CaptureCtrlPrivate _playCtrl As PlayCtrlPrivate _pMux As LMNetMuxPrivate _pDemux As LMNetDmxPrivate Const _networkUrl As String = "ltsf://127.0.0.1:27015" ' network stream urlPrivate Const TestMessage As String = "LEAD NETWORK"Public Sub WriteMessageExample()' reference the capture control_captureCtrl = _serverAndClient.CaptureCtrl' reference the play control_playCtrl = _serverAndClient.PlayCtrlTry' try to find a video cameraIf _captureCtrl.VideoDevices("Logitech") Is Nothing ThenThrow New Exception("No Logitech video device available")End If_captureCtrl.VideoDevices("Logitech").Selected = True' select a video compressor_captureCtrl.VideoCompressors.Mpeg4.Selected = True' set the target output file_captureCtrl.TargetFormat = TargetFormatType.NET_captureCtrl.TargetFile = _networkUrlIf _captureCtrl.IsModeAvailable(CaptureMode.Video) Then' just 10 seconds of capture time_captureCtrl.TimeLimit = 10_captureCtrl.UseTimeLimit = True_captureCtrl.Preview = True' subscribe to the started and progress events for this example' we will connect a client after the capture starts' and send a test message after 5 seconds.AddHandler _captureCtrl.Started, AddressOf CaptureCtrl_StartedAddHandler _captureCtrl.Progress, AddressOf CaptureCtrl_Progress' ready the capture graph in order to get the LNMetMux instance_captureCtrl.ReadyCapture(CaptureMode.Video)' get the network multiplexer reference_pMux = TryCast(_captureCtrl.GetSubObject(CaptureObject.TargetFilter), LMNetMux)If Not _pMux Is Nothing Then' set some mux settings_pMux.LiveSource = TrueEnd If' start capture_captureCtrl.StartCapture(CaptureMode.Video)' we'll loop on the state and pump messages for this example.' but you should not need to if running from a Windows Forms application.Do While _captureCtrl.State = CaptureState.Running OrElse _playCtrl.State = PlayState.RunningApplication.DoEvents()Loop' release the mux and demux COM objectsIf Not _pMux Is Nothing ThenMarshal.ReleaseComObject(_pMux)End IfIf Not _pDemux Is Nothing ThenMarshal.ReleaseComObject(_pDemux)End IfEnd IfCatch e1 As Exception_result = FalseEnd TryEnd SubPrivate Sub CaptureCtrl_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs)' for this test we will send a message after' 5 secs of capture timeIf e.time > 5000 AndAlso (Not _msgSent) Then_pMux.WriteMessage(TestMessage)Console.WriteLine("Server sent message")_msgSent = TrueEnd IfEnd SubPrivate Sub CaptureCtrl_Started(ByVal sender As Object, ByVal e As EventArgs)StartClient()End SubPrivate Sub StartClient()_playCtrl.SourceFile = _networkUrl_pDemux = TryCast(_playCtrl.GetSubObject(PlayObject.Splitter), LMNetDmx)_serverAndClient.TestTimer.Interval = 100AddHandler _serverAndClient.TestTimer.Tick, AddressOf PlayTimer_Tick_serverAndClient.TestTimer.Start()End SubPrivate Sub PlayTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)_serverAndClient.TestTimer.Enabled = FalseIf Not _pDemux Is Nothing ThenDim msg As String = _pDemux.ReadMessage()' set the result to what we expectIf msg = TestMessage Then_result = TrueConsole.WriteLine("Client received message")End IfEnd If_serverAndClient.TestTimer.Enabled = TrueEnd Sub
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
