/// <summary> /// Send audio data to the device. /// </summary> /// <param name="dataToSend">the audio data</param> /// <param name="format">the audio format</param> /// <param name="reduceLagThreshold">lag control value</param> /// <param name="streamFormat">the stream format selected</param> public void SendData(byte[] dataToSend, WaveFormat format, int reduceLagThreshold, SupportedStreamFormat streamFormat) { if (dataToSend == null || dataToSend.Length == 0 || format == null) { return; } // Lag control functionality. if (reduceLagThreshold < 1000) { reduceLagCounter++; if (reduceLagCounter > reduceLagThreshold) { reduceLagCounter = 0; return; } } // Send audio header before the fitrst data. if (!isAudioHeaderSent) { isAudioHeaderSent = true; if (streamFormat.Equals(SupportedStreamFormat.Wav)) { Send(audioHeader.GetRiffHeader(format)); } else { Send(audioHeader.GetMp3Header(format, streamFormat)); } } Send(dataToSend); }
public void SendData(byte[] dataToSend, WaveFormat format, int reduceLagThreshold, SupportedStreamFormat streamFormat) { if (reduceLagThreshold < 1000) { reduceLagCounter++; if (reduceLagCounter > reduceLagThreshold) { reduceLagCounter = 0; return; } } if (!isAudioHeaderSent) { isAudioHeaderSent = true; if (streamFormat.Equals(SupportedStreamFormat.Wav)) { Send(audioHeader.GetRiffHeader(format)); } else { Send(audioHeader.GetMp3Header(format, streamFormat)); // Hack to start mp3 streams faster: Send a 7.8 seconds buffer of 320 kbps silence. Send(Properties.Resources.silence); } } Send(dataToSend); }