Синхронизация воспроизведения аудио и видео с помощью OpenAL & amp; Переполнение стека

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

я нашел этот ответ и пример кода, чтобы быть действительно полезным.

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

2

Решение

Из связанного кода:

ALCdevice* inputDevice = alcCaptureOpenDevice(NULL,FREQ,AL_FORMAT_MONO16,FREQ/2);

Попробуйте использовать больший буфер:

ALCdevice* inputDevice = alcCaptureOpenDevice(NULL,FREQ,AL_FORMAT_MONO16,FREQ*4);

Опрос очень агрессивный. Попробуйте спать в цикле:

while (!done) {
...
}

Для того, чтобы:

int sleepSeconds = 1;
while (!done) {
...
Sleep(sleepSeconds/10) //windows, miliseconds
//sleep(sleepSeconds) //linux, seconds
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]