您的位置:首页 > 移动开发 > Android开发

一个基于ffmpeg的android播放器

2012-10-17 11:19 260 查看
最近在做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模拟器,然后运行程序即可安装播放器到模拟器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: