Похоже на проблему с вашей установкой.
Вам необходимо тщательно рассмотреть использование UDP (класс DatagramSocket) в качестве сетевого протокола.
UDP - это упрощенный протокол, который не гарантирует сохранение порядка принятых пакетов. Это может быть частью причины, по которой звук искажается. Пакет, полученный не по порядку, приведет к тому, что аудио пакеты будут проигрываться не по порядку. На границе этих пакетов из непоследовательной последовательности вы услышите щелчки / щелчки, где аудио образец эффективно поврежден. Кроме того, UDP-пакеты не гарантированно будут успешно доставлены. Любые отброшенные пакеты, очевидно, будут усиливать искажение или искажение звука.
TCP (класс Socket) будет лучшим вариантом для оптимального качества звука. TCP является более надежным протоколом, который будет поддерживать порядок получения пакетов. Он также имеет встроенную проверку ошибок и отправит все отброшенные пакеты. Однако из-за этой функциональности внимания у TCP больше сетевых издержек.
Я начал этот ответ с того, что вам нужно тщательно обдумать, какой протокол вы используете. Это потому, что есть смысл использовать любой из них в зависимости от того, что для вас важно.
Если вы хотите воспроизведения со сверхнизкими задержками, но готовы пожертвовать качеством звука, тогда UDP будет работать. Однако, чтобы найти лучший буфер и размер выборки, потребуются некоторые эксперименты.
Если вы хотите максимально возможное воспроизведение звука с нулевым искажением, но с удовольствием добавляете немного больше задержки, тогда TCP - это путь.
Я не могу сказать, сколько еще прибавит задержка TCP. Но возможно, что это может быть реализовано, не влияя на пользовательский опыт. Единственный способ узнать это - попробовать и посмотреть.
Эй, есть библиотека с открытым исходным кодом под названием «Libstreaming», которая используется для потоковой передачи голоса / видео по сети с использованием WIFI. Просто посмотрите на это:
https://github.com/fyhertz/libstreaming
Есть также несколько примеров, пожалуйста, посмотрите на это:
https://github.com/fyhertz/libstreaming-examples
Я использовал библиотеку для потоковой передачи RTSP Audio по сети, надеюсь, это может быть полезно.