Exemplo n.º 1
0
        public void AddAudioSamples(byte[] pcmAudio, int radioId, bool isStereo = false)
        {
            if (isStereo)
            {
                BufferedWaveProvider.AddSamples(pcmAudio, 0, pcmAudio.Length);
            }
            else
            {
                var settingType = SettingType.Radio1Channel;

                if (radioId == 0)
                {
                    settingType = SettingType.IntercomChannel;
                }
                else if (radioId == 1)
                {
                    settingType = SettingType.Radio1Channel;
                }
                else if (radioId == 2)
                {
                    settingType = SettingType.Radio2Channel;
                }
                else if (radioId == 3)
                {
                    settingType = SettingType.Radio3Channel;
                }
                else
                {
                    var stereo = JitterBuffer.CreateStereoMix(pcmAudio);
                    BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length);

                    return;
                }

                var setting = _settings.UserSettings[(int)settingType];

                if (setting == "Left")
                {
                    var stereo = JitterBuffer.CreateLeftMix(pcmAudio);
                    BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length);
                }
                else if (setting == "Right")
                {
                    var stereo = JitterBuffer.CreateRightMix(pcmAudio);
                    BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length);
                }
                else
                {
                    var stereo = JitterBuffer.CreateStereoMix(pcmAudio);
                    BufferedWaveProvider.AddSamples(stereo, 0, stereo.Length);
                }
            }
        }