Как я могу получить информацию о задержке из класса Android AudioTrack? - PullRequest
8 голосов
/ 08 апреля 2010

Я заметил, что классы C ++, лежащие в основе API AudioTrack и AudioRecord в Android, имеют метод latency(), который не предоставляется через JNI. Насколько я вижу, метод latency() в AudioRecord все еще не учитывает аппаратную задержку (для этого у них есть комментарий TODO), но метод latency() в AudioTrack добавляет аппаратное обеспечение. латентность.

Мне абсолютно необходимо получить значение задержки от AudioTrack. Есть ли какой-нибудь возможный способ сделать это? Мне все равно, какой сумасшедший взлом необходим, если для этого не требуется рутированный телефон (полученный код все еще должен быть упакован как приложение на рынке).

Ответы [ 2 ]

1 голос
/ 30 марта 2018

На AudioTrack есть метод, называемый getLatency(), который вы можете вызвать с помощью отражения. Например, посмотрите на Exoplayer или https://developer.amazon.com/docs/fire-tv/audio-video-synchronization.html#section1-2

0 голосов
/ 07 ноября 2012

Извините, но вам нужен реальный буфер + латентность жесткого диска? К сожалению, кажется, что вы не сможете получить это значение, если не будете использовать некоторые хаки, не рекомендованные Google и которые могут превратиться в складки в новых версиях Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...