最近,在开发时,正好遇到了如何在Windows上安装ijkplayer的问题。


ijkplayer是完全基于FFmpeg的 

参考这两篇编译安装ffmpeg的文章,也许对我们有一些帮助:

https://sourceforge.net/p/servestream/code/HEAD/tree/ffmpeg/scripts/arm-build.sh
http://blog.sina.com.cn/s/blog_7a1896ee0100ppdp.html 

但是,仅仅这两篇文章还不能解决我们的问题,这是因为  ijkplayer的编译环境主要是Mac下的UNIX系统,在Mac环境下很好配置。但是

对于需要在Windows下开发的用户,就需要做一些修改了。


首先安装cygwin 配置Android开发环境等, 下载ndk等细节问题就不说了。


直接上干货:

    首先,新建一个文件夹 如Ijkplayer, 用git下载 ijkplayer源码

   在Ijkplayer目录下,创建如下sh脚本 build-android.sh(注意,最好用编辑器如 notepad++创建,然后将文件转换为UNIX格式,也可以直接在cygwin的命令行里, 将文件转换为UNIX格式,就不多说了)

   build-android.sh如下

   

#!/bin/bash#!/bin/bashcd ijkplayer#based on the current versiongit checkout -B latest k0.5.1SDK=E:/AS_AndroidSDK/NDK=E:/Android_NDK/android-ndk-r11cPREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/*-x86/binecho setting the sdk and/or ndk pathexport ANDROID_SDK=$SDKexport ANDROID_NDK=$NDKexport TMPDIR=E:/cygwin64/tmp echo config for ffmepg modulecd configrm module.shln -s module-default.sh module.shcd ..echo download ffmpeg source code./init-android.sh#cd ijkplayerecho intall ffmepgcd android/contrib./compile-ffmpeg.sh clean./compile-ffmpeg.sh allecho compile ijkplayercd .../compile-ijk.sh all

以上就是  基本按照官方的脚本实例来写的

用管理员权限打开cygwin.bat ,

进入创建的 Ijkplayer目录

直接执行 ./build-android.sh

但是,可能遇到注意一下问题:

1   arm-linux-androideabi-gcc cannot create a executable file , gcc test failed 

     在sh中,添加export TMPDIR=E:/cygwin64/tmp 这一句是需要的,首先创建相应temp文件夹,不然会抱  gcc 无法创建executable文件错误  


 2   无法找到NDK目录下 *-x86/prebuit/lib/python2.7路径

    由于 我们使用cygwin 环境下编译的,  因此ijk的脚本,会将找cygwin-x86或者cygwin-x86_64等文件夹,执行时找不到。就需要我们在相应目录下,复制已有的  windows-x86和 windows-x86_64文件夹,将其命名为cygwin-x86或者cygwin-x86_64。  凡是报这样错的 都做统一修改即可


3  ndk-build 不能找到

   这是因为Windows版 NDK目录下没有ndk-build,只有ndk-build.cmd

    因此,需要到, ijkplayer/android目录下  修改compile-ijk.sh文件,将 ndk-build改为ndk-build.cmd


4  arm-linux-androideabi-gcc 找不到, 接着出现在ffmpeg-*/output/prebuilt下找不到 libffmpeg.so文件的情况

    这个问题很迷惑,  在直接编译FFmpeg时也遇到过了,一般是 arm-linux-androideabi-gcc.exe的路径找不到。  添加到系统环境中即可,即将

   NDK 目录toolchains\arm-linux-androideabi-4.9\prebuilt\cygwin-x86\bin添加进去

   

    但是即便是这样添加了 还是无济于事,

    因此,可以在ijkplayer/android/contrib/tools里,修改do-compile-ffmpeg.sh

   在 284行的./configure下面 添加 

   --extra-libs=-lgcc \  即可解决改问题


5  以上编译  ffmpeg成功后, 还是出现,ffmpeg-*/output/prebuilt下找不到 libffmpeg.so文件的情况

     这个时候,可以将ijkplayer\android\ijkplayer\ijkplayer-*\src\main\jni\ffmpeg 下的 android.mk文件的  LOCAL_SRC_FILE的$(MY_APP_FFMPEG_OUTPUT_PATH) 路径 改为绝对路径  路径/IjkPlayer/ijkplayer/android/contrib/build/ffmpeg-armv7a/output/即可



更多相关文章

  1. Android(安卓)拷贝Asset目录下文件或者文件夹
  2. android 启动自动调用自己创建的脚本(应用程序)
  3. Android(安卓)常用的adb命令
  4. 【Gradle】Android(安卓)Gradle 高级自定义
  5. NDK入门
  6. Android之 自定义属性 的使用
  7. Android(安卓)Camera2 Hal3(二)startPreview预览过程
  8. NDK 入门
  9. Android(安卓)欢迎全屏图片详解及实例代码

随机推荐

  1. android在java代码中动态添加组件及相关
  2. Android入门篇(四):自动拨打电话、手动拨打
  3. [新闻] 2012互联网趋势报告摘要
  4. android(12)_解析xml文件1_dom
  5. Android开发笔记(一)像素的单位
  6. Android生猛上手,先写个拨号器。
  7. Android(安卓)各种菜单,弹出菜单,打开文件
  8. Java中的APT注解
  9. PHP环境搭建与基础语法
  10. Android(安卓)compress图片压缩介绍