Подтвердить что ты не робот

Задержка в потоковом аудио

Я пытаюсь передать аудио через сервер. Я настроил все, и он отлично работает с записью и воспроизведением статического звука, но , когда я пытаюсь передать аудио, есть задержка на игровой стороне.

Я сделал поиск Google, но не смог найти правильный способ сделать это. Я использую AudioRecord и API аудиодорожек Audiotrack для отправки и получения аудиоданных. Может ли кто-нибудь сказать мне , как справиться с этой задержкой?

Я добавил код GOOGLE GROUP, чтобы получить четкое изображение.

Я попытался таким образом, имея 5 кусков аудиоданных в буфере, который поступает через сервер и воспроизводится, когда он заполняет 5 кусков данных и снова получает следующие 5 фрагментов аудиоданных и заполняет их так, как будто он идет до 1024 байтов данных (он записывает в звуковой дорожку и вызывается метод воспроизведения). Это тоже имеет задержку, любые другие решения

4b9b3361

Ответ 1

Если вы действительно пытаетесь сделать это небуферизованным, убедитесь, что любой инструмент воспроизведения, который вы используете, пытается воспроизвести его без буфера. Вам будет трудно не задерживаться. Ничто на телевидении, радио и т.д. Действительно "живое" - всегда есть какая-то задержка. Благодаря интернет-потокам вы постоянно отправляете большой объем данных. Даже несмотря на время для поездки, все эти данные должны храниться в определенном порядке, и никто не хочет прерывистого воспроизведения, пока компьютер-конечный пользователь пытается воспроизвести. У меня были флеш-плейеры для крупных сетей, которые хранят массивные файлы кеша на моем компьютере во время обработки воспроизведения, но их игроки не пропускают/ждут буфера/и т.д. (Если вы загружаете что-то и замечаете несколько 100 МБ дополнительной памяти, используемой, возможно, даже больше во время воспроизведения, что это такое.)

Вы могли бы уйти с очень маленьким буфером (стандартом в прошлом было 30-60 секунд, и многие игроки по-прежнему по умолчанию) с использованием VLC. Я смог установить его буфер очень низко, но он находится на невероятно низких потоках/видео. Большая проблема, которая у вас есть, хотя, я думаю, ваше воспроизведение настраивает буфер, и если ваше воспроизведение установлено на 60-секундный буфер, не имеет значения, что вы делаете с серверами... клиентский конец будет ждать, пока он так сильно фрагмента и затем начать воспроизведение.