使用 FFMPEG 播放音频

Cod*_*ley 6 c android ffmpeg audio-streaming android-ndk

我一直在尝试使用 NDK 将 FFMPEG(用于播放音频)移植到 Android 中。我取得了一些成功

  • 我可以构建 FFMPEG 并通过 NDK 链接它。
  • 我可以调用avcodec_decode_audio3()并解码给定的音频文件。

所以这里我有一个来自该函数的音频缓冲区输出。我现在该怎么玩这个?任何 ffmpeg 人员都可以告诉我解码和播放音频的确切步骤。我真的不知道如何处理我创建的音频缓冲区avcodec_decode_audio3()

多谢。

Ani*_*ole 0

我在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);
}
Run Code Online (Sandbox Code Playgroud)

  • 这个答案是三明治的面包,完全没有肉。 (9认同)