使用Android NDK从OGG音乐文件中提取原始音频帧

时间:2018-10-15 14:26:05

标签: ffmpeg android-ndk oggvorbis

在我的Android应用中,我希望能够通过提取音频样本,处理它们并将它们重定向到音频输出来即时处理OGG文件中的音频。

我知道如何使用Android NDK进行最后2个步骤,但是我不知道如何提取音频样本以将它们放入浮点或短裤数组中。

我试图使this code正常工作,以便可以即时提取原始音频样本。

问题是:我没有设法在项目中添加FFMpeg。我尝试了许多教程(例如this one),但由于我在Windows上工作,因此似乎很困难。所以过了一会儿,我发现Prebuild FFMpeg for Android似乎很有趣,因为它可用于armeabi-v7a,arm64-v8a,x86和x86_64体系结构,但是同样,我也不知道如何在项目中添加它。 / p>

我也研究了libogglibvorbisvorbisfile,但是我不知道如何在项目中添加它们。

那么,有没有人有一个可行的示例,说明如何动态地从OGG文件中提取音频样本?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这是我最终设法继续的方式:

  1. 这是一个非常详细的教程,清楚地说明了如何为Android编译FFMpeg(请仔细查看注释):https://www.youtube.com/watch?v=2OGbamEjYhc
  2. 然后,这是一个很好的教程,解释了如何在Android项目中实现FFMpeg库(从“将预构建的C / C ++库集成到Android项目开始”):https://proandroiddev.com/android-ndk-how-to-integrate-pre-built-libraries-in-case-of-the-ffmpeg-7ff24551a0f
  3. 这是我最终设法使用FFMpeg从音频文件中提取音频样本的方法:https://gist.github.com/mregnauld/2538d98308ad57eb75cfcd36aab5099a

对于第2步,您只需进行次要更新即可定位以下ABI:

  • armeabi-v7a
  • arm64-v8a
  • x86
  • x86_64

希望这会有所帮助。