Временные решения для задержки аудио Android - PullRequest
8 голосов
/ 17 ноября 2010

Таким образом, любой, кто заслуживает внимания в сообществе разработчиков Android, знает о проблеме 3434, касающейся звука с низкой задержкой в ​​Android.Для тех, кто этого не делает, вы можете обучить себя здесь.http://code.google.com/p/android/issues/detail?id=3434

Я ищу какой-нибудь временный обходной путь для моего личного проекта.Я слышал рассказ о том, как открыть частные интерфейсы для NDK, развернув собственную сборку Android и изменив NDK.

Все, что мне нужно, - это способ доступа к низкоуровневым драйверам alsa, которые уже включены в стандартную комплектацию.2.2 сборка.Я хотел бы иметь возможность отправлять PCM напрямую на аудиоустройство на моем устройстве.Меня не волнует, что полученное приложение не будет распространяться на рынке и, скорее всего, не будет работать с любым другим устройством, кроме моего.

У кого-нибудь есть какие-нибудь полезные идеи?

-Griff

РЕДАКТИРОВАТЬ: я должен отметить, я знаю, AudioTrack предоставляет эту функциональность, но я хотел бы гораздо меньшую задержку - AudioTrack сидит около 300 мс, я хотел бы где-то около 20-30 мс.

Ответы [ 2 ]

7 голосов
/ 28 марта 2011

Грифф, это просто проблема, NDK не улучшит известную проблему задержки (это даже задокументировано).Уровень аппаратной абстракции в нативном коде в настоящее время увеличивает задержку, поэтому речь идет не только о доступе к драйверам низкого уровня (кстати, вы все равно не должны полагаться на драйверы alsa).

1 голос
/ 13 сентября 2012

Android: звуковой API (детерминированный, с низкой задержкой) довольно хорошо компенсирует компромиссы.TL; DR: NDK дает вам небольшое преимущество, потому что потоки могут работать с более высоким приоритетом, но до Jellybean это преимущество не имеет смысла, потому что вся аудиосистема настроена на Java.довольно близко к 30 мс задержки на выходе.

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