Stap 3: Uitvoering van externe camera streaming in C# - MyServer.cs
De klasse MyServer.cs is verantwoordelijk voor de streaming. Laten we het analyseren van deze klasse!
Na invoegen de nodige via lijnen, is er een behoefte aan sommige objecten (MediaConnector, IPCameraClient, VideoSender) en een event handler-methode. Na het initialiseren van de MediaConnector in de constructor, moet u code de methode ClientsChanged, die aangeeft wanneer een nieuwe client verbinding maakt met of de server verbreekt. Zoals het is beneden te zien, de OnClientConnected en de methoden OnClientDisconnected geweest overschreven. (De eerste wordt gebruikt de client verbinding te maken met het beeld van de camera en de ClientsChanged-methode aan te roepen. De methode OnClientDisconnected is verantwoordelijk voor de client verbreken met het beeld van de camera.)
Na dit moet u een VideoSender-object dat de afbeelding van de camera zal bevatten. Moet u ook een exemplaar van de klasse MijnServer, dan initialiseren het in de constructor. De VideoSender instantie moet gelijk aan het beeld van de webcam en de VideoChannel van de IP-camera.
<p>using System;<br>using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ozeki.Media.IPCamera; using Ozeki.Media.IPCamera.Server; using Ozeki.Media.MediaHandlers;</p><p>namespace Basic_CameraViewer { public class MyServer : IPCameraServer { private MediaConnector _connector;</p><p> private IIPCameraClient _client;</p><p> public IVideoSender VideoSender { get; set; }</p><p> public event EventHandler OnClientCountChanged;</p><p> public MyServer() { _connector = new MediaConnector(); }</p><p> protected override void OnClientConnected(IIPCameraClient client) { _client = client; _connector.Connect(VideoSender, _client.VideoChannel);</p><p> var handler = OnClientCountChanged; if (handler != null) handler(null, new EventArgs());</p><p> base.OnClientConnected(_client); }</p><p> protected override void OnClientDisconnected(IIPCameraClient client) { _client = client;</p><p> _connector.Disconnect(VideoSender, _client.VideoChannel); _connector.Dispose();</p><p> var handler = OnClientCountChanged; if (handler != null) handler(null, new EventArgs());</p><p> base.OnClientDisconnected(_client); } } }</p>