public void togglePlayingTCP()
 {
     if (sdsock != null)
     {
         sdsock.Dispose();
         sdsock = null;
         if (concentusOpusDecoder != null)
         {
             concentusOpusDecoder.ResetState();
             concentusOpusDecoder = null;
         }
         m_Player.Close();
     }
     else
     {
         sdsock = new SoundDataSocket(NetworkTypes.Client);
         sdsock.ConnectedCallback         += Socket_ConnectedCallback;
         sdsock.DisconnectedCallback      += Socket_DisconnectedCallback;
         sdsock.ConnectionFailedCallback  += Socket_ConnectionFailedCallback;
         sdsock.DataRecievedCallback      += Socket_DataRecievedCallback;
         sdsock.StartDataRecievedCallback += Socket_StartDataRecievedCallback;
         sdsock.EndDataRecievedCallback   += Socket_EndDataRecievedCallback;
         sdsock.Connect(System.Net.IPAddress.Parse(GlobalConfiguration.ServerAddress), config.SoundServerPort);
     }
 }
Пример #2
0
        // this call block until recieved client connection request
        public AudioOutputWriter(MMDevice device, GlobalConfiguration config)
        {
            if (device == null)
            {
                throw new ArgumentNullException(nameof(device));
            }

            this.config         = config;
            m_JitterBufferCount = this.config.JitterBuffer;
            m_Milliseconds      = this.config.JitterBufferTimerPeriodMsec;

            m_device     = device;
            this._WaveIn = new WasapiLoopbackCapture(m_device);
            this._WaveIn.DataAvailable    += this.WaveInOnDataAvailable;
            this._WaveIn.RecordingStopped += this.WaveInOnRecordingStopped;
            WaveFormat wfmt = this._WaveIn.WaveFormat;

            sdsock = new SoundDataSocket(NetworkTypes.Server);
            //dispatcher = Dispatcher.CurrentDispatcher;
            sdsock.ConnectedCallback         += Socket_ConnectedCallback;
            sdsock.DisconnectedCallback      += Socket_DisconnectedCallback;
            sdsock.ConnectionFailedCallback  += Socket_ConnectionFailedCallback;
            sdsock.DataRecievedCallback      += Socket_DataRecievedCallback;
            sdsock.StartDataRecievedCallback += Socket_StartDataRecievedCallback;
            sdsock.EndDataRecievedCallback   += Socket_EndDataRecievedCallback;
            //sdsock.Listen(IPAddress.Parse(GlobalConfiguration.ServerAddress), this.config.SoundServerPort);
            sdsock.Listen(IPAddress.Any, this.config.SoundServerPort);

            Start(); // start capture and send stream
        }
 private void Socket_DisconnectedCallback()
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         sdsock.Dispose();
         sdsock = null;
     });
 }
 private void Socket_ConnectionFailedCallback(string error)
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         sdsock.Dispose();
         sdsock = null;
     });
 }