Задать вопрос
@DerilH

Как сделать проигрывание полученного звука беспрерывно, как в голосовом чате?

Есть вот такой вот код написанный с использование сокетов и NAudio
public void BeginReceive() 
        {
            Thread ReceiveVoiceFromChatThread = new Thread(()=> 
            {
                while (true) 
                {
                    try
                    {
                        byte[] ReceivedVoiceDataLenght = new byte[4];
                        VoiceSocket.Receive(ReceivedVoiceDataLenght);
                        byte[] ReceivedVoiceData = new byte[BitConverter.ToInt32(ReceivedVoiceDataLenght)];
                        VoiceSocket.Receive(ReceivedVoiceData);
                        new Thread(() =>
                        {
                            try
                            {
                                IWaveProvider provider = new RawSourceWaveStream(new MemoryStream(ReceivedVoiceData), new WaveFormat(44100, 1));
                                WaveOut _waveOut = new();
                                _waveOut.Init(provider);
                                _waveOut.Play();
                            }
                            catch (Exception ex) 
                            {
                                MessageBox.Show(ex.ToString());
                            }
                        }).Start();
                   

                    }
                    catch(Exception ex) 
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
            });
            ReceiveVoiceFromChatThread.Start();
        }

Знаю, код очень кривой, и должен работать не так как надо. Но он не работает в принципе, каждые 40 миллисекунд туда поступает массив байт с сокета, но почему то звук не проигрывается.
P.S. Используется TCP сокет (тоже не лучший выбор).
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы