1

Я пытаюсь воспроизвести аудио из буфера, который передается с android на Android. Пробовал использовать AudioTrack, который работает только для формата PCM. Для воспроизведения MP3 я ищу использовать MediaPlayer, но он не поддерживает воспроизведение из буфера. Как я могу заставить его работать?Как играть аудио из буфера в Android

ответ

1

Ну, у вас есть несколько вариантов ... 1) (Возможно, это плохой вариант). Фактически вы можете сделать то, что вы попросите, используя локальный прокси для передачи MediaPlayer данных MP3. Это не очень просто, но я уверен, что он может работать. 2) Декодируйте данные MP3 и используйте AudioTrack. Это более легкий вариант, если вы хотите использовать стороннюю библиотеку для декодирования. См. this link. Возможно, существуют и другие библиотеки, которые можно использовать для декодирования.

UPDATE: К сожалению, ссылка, которую я предоставил, теперь сломана. Приношу свои извинения за то, что вы не получили больше информации в ответе. Как говорит OP в комментарии, декодируйте с помощью MediaCodec и воспроизведите с помощью AudioTrack.

+0

Спасибо Дэйв. У меня есть сомнение: возможно ли декодировать буфер и воспроизводить его с помощью audiotrack? потому что я не собираюсь использовать какой-либо файл для сохранения данных, которые я получаю. мой текущий сценарий, например while (1) { \t получает_audio_data (buf);/* принимает звуковые данные 4kb */ \t decode_received_data (buf);/* декодирование 4kb mp3 аудиоданных */ \t audioTrack.write (buf, 0, 4096); } Будет ли это работать? –

+0

Вам не нужно, чтобы он был помещен в файл. Он должен работать, сохраняя данные в памяти. – Dave

+1

Декодированный MP3 с помощью MediaoCodec и воспроизвел его с помощью AudioTrack. –