Звук воспроизводится слишком быстро - PullRequest
1 голос
/ 30 августа 2010

Если кто-нибудь из моих коллег-пользователей Xuggler скажет мне, что я делаю неправильно, это было бы здорово!Я делаю следующее:

  1. Чтение из ogv (ogg video)
  2. Очередь аудио и видео
  3. Запись в ogv

звучит просто, верно?Проблема, с которой я сталкиваюсь в своем классе QueueMixer, заключается в том, что выходной файл воспроизводит аудио в 2 раза быстрее, и независимо от того, что я проверяю или изменяю в отношении точек, он не улучшается.

Проект eclipse и все используемые файлы находятся по этой ссылке: http://dl.dropbox.com/u/7316897/paul-xuggled.zip

Чтобы запустить тест, скомпилируйте и выполните класс StreamManager;тестовый файл ogv включен.Прежде чем кто-либо спросит, да, я должен поставить данные в очередь, так как они будут смешаны с другими данными в будущей версии.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2010

Исправление заключается в умножении количества выборок на два при извлечении их из ShortBuffer. samples = new short[(int) audioSamples.getNumSamples() * 2]; audioSamples.getByteBuffer().asShortBuffer().get(samples); При половине сэмплов звук воспроизводится в два раза быстрее.

0 голосов
/ 30 августа 2010

Аудио имеет частоту дискретизации.Убедитесь, что вы скопировали частоту дискретизации со входа на выход, иначе система может использовать значение по умолчанию (например, 44 кГц, в то время как исходные данные сэмплируются с частотой 22 кГц, что может создать такой эффект).

...