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
и Разрешить все равно подскажет там.