Извлечение необработанных аудио кадров из музыкального файла OGG с Android NDK - PullRequest
0 голосов
/ 15 октября 2018

В моем приложении для Android я хотел бы иметь возможность обрабатывать аудио на лету из файла OGG, извлекая аудиосэмплы, обрабатывая их и перенаправляя их на аудиовыход.

Я знаю, как сделатьпоследние 2 шага с использованием Android NDK, но я не знаю, как извлечь аудиосэмплы, чтобы получить их в массиве с плавающей точкой или шортах.

Я пытался заставить этот код работать так, чтобыпо-видимому, может извлекать необработанные аудиосэмплы на лету.

Проблема в том, что мне не удается добавить FFMpeg в мой проект.Я перепробовал много уроков (например, , этот ), но это кажется довольно сложным, так как я работаю на Windows.Итак, через некоторое время я нашел Prebuild FFMpeg для Android , который кажется интересным, поскольку он доступен для архитектур armeabi-v7a, arm64-v8a, x86 и x86_64, но, опять же, я не понимаю, как его добавитьв моем проекте.

Я также взглянул на libogg, libvorbis и vorbisfile, но я не знаю, как добавить их в мой проект.

Итак, делаетУ кого-нибудь есть рабочий пример того, как извлекать аудио образцы из файла OGG на лету?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 31 октября 2018

Вот как мне, наконец, удалось продолжить:

  1. Вот очень подробное руководство, в котором четко объясняется, как скомпилировать FFMpeg для Android (пожалуйста, внимательно посмотрите на комментарии): https://www.youtube.com/watch?v=2OGbamEjYhc
  2. Итак, вот хорошее руководство, которое объясняет, как реализовать библиотеку FFMpeg в проекте Android (начиная с «Интеграция предварительно собранных библиотек 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

Надеюсь, это поможет.

...