Воспроизведение аудио с FFMPEG - PullRequest
3 голосов
/ 15 февраля 2011

Я пытался перенести FFMPEG (для воспроизведения звука) в Android с помощью NDK. У меня был некоторый успех

  • Я мог бы собрать FFMPEG и связать его через NDK.
  • Я мог бы позвонить avcodec_decode_audio3() и декодировать данный аудиофайл.

Так что здесь у меня есть выход аудио буфера от функции. Как мне играть в это сейчас? Любые ребята из ffmpeg могут рассказать мне точные шаги для декодирования и воспроизведения аудио. Я действительно не знаю, что делать с аудио-буферами, созданными из avcodec_decode_audio3().

Большое спасибо.

1 Ответ

2 голосов
/ 09 марта 2011

Я разработал видеоплеер на Android на основе ffmpeg. Вы можете использовать класс AudioTrack для воспроизведения звука на устройстве.

РЕДАКТИРОВАТЬ:

В Java создайте объект аудиотрека

AudioTrack track;
bufferSize = AudioTrack.getMinBufferSize(44100,AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT)
track = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize, mode);

//Play audio clip
track.play();

while(stream_is_over){
//Copy the decoded raw buffer from native code to "buffer" .....
............
track.write(buffer, 0, readBytes);
}
...