Android lib ijkplayer загрузить https URL

Я использую ijkplayer в моем приложении для Android, которое я компилирую с помощью

compile 'tv.danmaku.ijk.media:ijkplayer-java:0.4.5'
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.4.5'

Это прекрасно работает при загрузке URL-адресов http, но если я пытаюсь загрузить URL-адреса https, я получаю эту ошибку

https protocol not found, recompile FFmpeg with openssl, gnutls, or securetransport enabled.

и не могу загрузить мое видео. Я не знаю, имеет ли это какое-то значение, но URL, который я пытаюсь загрузить, - это.m3u8, но если это http, то работает нормально.

Как я могу перекомпилировать ffmpeg в этой библиотеке?

2 ответа

Решение

Привет Петро, ​​я не профессионал, но надеюсь, что этот урок поможет.

Вы должны скомпилировать ijkplayer с поддержкой openssl, чтобы открыть ссылки https, для этого выполните следующие действия:

Загрузите последнюю версию IjkPlayer с github:

$ git clone https://github.com/Bilibili/ijkplayer.git

Откройте только что загруженную папку ijkplayer Удалите символические ссылки на module.sh и создайте символическую ссылку на module-lite.sh

$ cd config
$ rm module.sh
$ ln -s module-lite.sh module.sh

Выполните инициализацию OpenSSL (готовьтесь сначала загрузить и скомпилировать openssl)

$ cd ..
$ ./init-android-openssl.sh

Убедитесь, что вы указали путь SDK и NDK.

(Предпочитается NDK r10e - я не уверен, нужен ли SDK, но на всякий случай я его экспортировал)

ПРИМЕЧАНИЕ: убедитесь, что вы изменили свой путь правильно, это только пример пути, который я использовал.

export ANDROID_SDK="/home/ZiomusGorliczanin/SDK"
export ANDROID_NDK="/home/ZiomusGorliczanin/NDK"

Откройте папку IjkPlayer/android/contrib и запустите compile-openssl.sh clean и все команды (которые скомпилируют openssl для всех процессоров).

$ cd android/contrib
$ ./compile-openssl.sh clean
$ ./compile-openssl.sh all

Компиляция может занять некоторое время 10 минут.

Скомпилируйте FFMpeg с OPENSSL для всех процессоров:

$ cd android/contrib
$ ./compile-ffmpeg.sh clean
$ ./compile-ffmpeg.sh all

Наконец скомпилируйте IjkPlayer со всем вышеперечисленным в качестве библиотеки.

$ cd ..
$ ./compile-ijk.sh all

После всех этих шагов у вас должны быть библиотеки в этих папках (три *.so файла):

ijkplayer/ijkplayer-armv5/src/main/libs
ijkplayer/ijkplayer-armv7a/src/main/libs
ijkplayer/ijkplayer-arm64/src/main/libs
ijkplayer/ijkplayer-x86/src/main/libs

Попробуйте импортировать gradle-проект в вашу Android Studio и запустите Ijk-Example для тестирования.

Если вы получили эту ошибку

Сборка профилировщика ./compile-ijk.sh: НЕТ

Это связано с политикой безопасности Apple в MacBook, поэтому для этого есть альтернативное решение. Apple menu-->System Preferences-->Security & Policyи Разрешить все равно подскажет там.

Другие вопросы по тегам