Где находится буфер аудиоплееров в opensl при потоковой передаче звука с URI?
Я пытаюсь передать аудиофайл из URI с использованием opensl. Я хочу воспроизвести его немедленно, но у меня также есть доступ к потоковым данным после того, как проигрыватель завершил воспроизведение файла.
Я знаю, что данные находятся где-то в памяти, потому что я могу использовать поиск во время воспроизведения потокового аудио. Также, когда проигрыватель завершил воспроизведение потокового аудиофайла, я останавливаю проигрыватель, который устанавливает положение проигрывателей обратно на "0", где я могу снова начать воспроизведение аудио.
Мне нужно получить доступ к этим данным, но где это? могу ли я получить указатель на это как-нибудь?
1 ответ
Если вы транслируете контент по сети, я не уверен, что то, что вы пытаетесь сделать, возможно.
Однако, начиная с API Android 14, можно использовать устройство аудиопроигрывателя для декодирования контента в источник данных очереди буфера в формате PCM.
Для получения дополнительной информации об этом обратитесь к документации NDK /docs/opensles/index.html.
Декодирование аудио в PCM Примечание. Эта функция доступна на уровне API 14 и выше. Стандартный аудиоплеер воспроизводит аудиоустройство, а приемник данных указывается в качестве выходного микса. Однако в качестве расширения Android аудиопроигрыватель выступает в качестве декодера, если источник данных указан в качестве локатора данных дескриптора файла URI или Android с форматом данных MIME, а приемник данных представляет собой локатор данных очереди простого буфера Android с данными PCM. формат.