/// <summary> /// Dispose /// </summary> public void Dispose() { //Protocol if (Protocol != null) { this.Protocol.DataComplete -= new WinSound.Protocol.DelegateDataComplete(OnProtocolDataComplete); this.Protocol = null; } //JitterBuffer if (JitterBuffer != null) { JitterBuffer.Stop(); JitterBuffer.DataAvailable -= new WinSound.JitterBuffer.DelegateDataAvailable(OnJitterBufferDataAvailable); this.JitterBuffer = null; } //Player if (Player != null) { Player.Close(); this.Player = null; } //Nicht initialisiert IsInitialized = false; }
/// <summary> /// Init /// </summary> /// <param name="bitsPerSample"></param> /// <param name="channels"></param> public void Init(ServerThread st, string soundDeviceName, int samplesPerSecond, int bitsPerSample, int channels, int soundBufferCount, uint jitterBufferCount, uint jitterBufferMilliseconds) { //Werte übernehmen this.ServerThread = st; this.SamplesPerSecond = samplesPerSecond; this.BitsPerSample = bitsPerSample; this.Channels = channels; this.SoundBufferCount = soundBufferCount; this.JitterBufferCount = jitterBufferCount; this.JitterBufferMilliseconds = jitterBufferMilliseconds; //Player this.Player = new WinSound.Player(); this.Player.Open(soundDeviceName, samplesPerSecond, bitsPerSample, channels, soundBufferCount); //Wenn ein JitterBuffer verwendet werden soll if (jitterBufferCount >= 2) { //Neuen JitterBuffer erstellen this.JitterBuffer = new WinSound.JitterBuffer(this.Player, jitterBufferCount, jitterBufferMilliseconds); this.JitterBuffer.DataAvailable += new WinSound.JitterBuffer.DelegateDataAvailable(OnJitterBufferDataAvailable); this.JitterBuffer.Start(); } //Protocol this.Protocol = new WinSound.Protocol(WinSound.ProtocolTypes.LH, Encoding.Default); this.Protocol.DataComplete += new WinSound.Protocol.DelegateDataComplete(OnProtocolDataComplete); //Initialisiert IsInitialized = true; }