使用FFMPEG播放音频
问题描述:
我一直在尝试使用NDK将FFMPEG(用于播放音频)移植到Android中。我已经取得了一些成功使用FFMPEG播放音频
- 我可以构建FFMPEG并通过NDK链接它。
- 我可以拨打
avcodec_decode_audio3()
并解码给定的音频文件。
所以这里我有一个音频缓冲区输出的功能。我现在怎么玩?任何ffmpeg家伙都可以告诉我解码和播放音频的确切步骤。我真的不知道如何处理从avcodec_decode_audio3()
获得的音频缓冲区。
非常感谢。
答
我开发了一个基于ffmpeg的android上的videoplayer。您可以使用AudioTrack类将音频播放到设备上。
编辑:
在Java中创建一个audiotrack对象
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);
}
你可以试试[这](http://stackoverflow.com/questions/2645041/ffmpeg-for-a-android-using -tutorial-ffmpeg-and-android-mk)或者[this](http://stackoverflow.com/questions/4725773/ffmpeg-on-android)。 – Sriram 2011-02-15 06:16:25
我经历过那些事。这些只是帮助“构建”Android的ffmpeg,我已经完成了。我不知道如何使用FFMPEG库函数。 – Codevalley 2011-02-15 07:10:28