一个基于ffmpeg的android播放器

       最近在做ffmpeg移植相关的工作,我在前篇文章中提到过ffmpeg移植的一种方法。最近我又在国外网站上看到一个人基于ffmpeg做出了一个android播放器,我按照他所描述的步骤尝试了一下,发现他的步骤还是有一些错误和不尽详细的地方。所以,我想写这篇文章来帮助大家。

       实验的平台是ubuntu12.04LTS,NDK是android-ndk-r5或android-ndk-r5b。

       所有代码可以从该网站下载:http://www.roman10.net/how-to-build-android-applications-based-on-ffmpeg-by-an-example/

       源码下载下来之后,首先要解压。

       1.进入解压出来的文件夹,在jni文件夹目录下找到Application.mk。把第一行改成APP_ABI := armeabi。这个我要解释一下,因为在avd中android2.2的模拟器cpu默认选择就是armeabi,不能更改。所以如果不更改这一行的话会导致编译出来的apk无法在android2.2模拟器上运行。

       2.进入jni文件夹下的ffmpeg-0.8文件夹,打开build_android.sh文件。根据自己的ndk路径来修改其中的如下三行:

NDK=/home/zk/java/android-ndk-r5
PLATFORM=$NDK/platforms/android-8/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86

       由于我们在Application.mk中修改了APP_ABI,所以我们同时也要在build_android.sh中作出相应的修改。即注释掉如下几行:

#arm v7vfpv3
#CPU=armv7-a
#OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
#PREFIX=./android/$CPU 
#ADDITIONAL_CONFIGURE_FLAG=
#build_one
        选择arm v6:

#arm v6
CPU=armv6
OPTIMIZE_CFLAGS="-marm -march=$CPU"
PREFIX=./android/$CPU 
ADDITIONAL_CONFIGURE_FLAG=
build_one
        然后保存退出。

        3.在终端下进入build_android.sh所在的目录,修改其可执行权限:

sudo chmod 755 build_android.sh

       4.在终端下输入如下代码执行build_android.sh:

./build_android.sh

       5.步骤4完成之后,打开jni目录下的android.mk文件,把其中的armv7-a全部替换成armv6。保存退出后,终端进入android.mk所在目录,根据自己的ndk-build目录来执行如下命令:

/home/zk/java/android-ndk-r5/ndk-build

       6.然后打开eclipse,新建android工程,将ffmpegTest文件夹导入工程,检查gen文件目录下是否有R.java文件(如果没有的话执行project->clean即可)。打开一个android2.2模拟器,然后运行程序即可安装播放器到模拟器。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值