本开源Android播放器基于ffmpeg开发,音视频在jni层直接输出,不使用java层的bmp和audiotrack输出,支持arm汇编加速,超级精简。

 

本开源代码播放器使用的音视频解码代码来源于ffmpeg-0.6.3(http://www.ffmpeg.org),
jni衔接代码和java层代码来源于havlenapetr(https://github.com/havlenapetr/FFMpeg)。

移植ffmpeg到android的常规关键点网上有很多的帖子可以参考,也可以用文件夹比较工具比较一下,看看添加修改删除了那些文件。

本开源代码的编译环境
1: Android SDK 2.2版,
2: NDK r4版,注意要导出NDK宏,

3: IDE开发环境是 eclips 3.5 版 

4: libffplay.so是在Android 2.2版源码目录树中编译出来的,使用Ubuntu10.04和VMware7.1.1版,目前源码不公开
5: libffmpeg.so编译步骤,cd /cygwin/c/ffplay, ./config_r4.sh, $NDK/ndk-build
6: PC主机开发环境是windows xp。

 

此开源代码解决的特别关键点如下:
1:arm汇编代码编译支持,主要是在几个.mk文件中添加LOCAL_ARM_MODE := arm语句,
     在config_r4.sh文件中添加--arch=armv5te和--enable-asm 等开关。
2:在ffmpeg config_r4.sh配置文件中关闭了一些不用的选项后,连接时总是报一些莫名其妙的连接错误,
    本开源代码给出终极解决方案(在/jni/jni/Android.mk文件中添加 LOCAL_LDLIBS += C:/ffplay/bin/ndk/local/armeabi/libavcodec.a等语句)。
3:修改havlenapetr中的视频显示错误bug,经测试havlenapetr原始代码在模拟器设置为320x480时显示正确,在更大的分辨率下显示错误,
    本开源代码已修改好此bug,现在无论什么分辨率都可以正确显示。
4:jni衔接代码相比havlenapetr做了很好的精简,更方便网友们研习。
5:此开源代码不包括play,pause,stop,seek和视音频同步等功能实现代码,这部分代码不开源。

 

 欢迎下载研习: http://files.cnblogs.com/mcodec/ffplay1.7z  

  apk包下载:   http://files.cnblogs.com/mcodec/ffplay1.apk.7z 

转自 http://www.cnblogs.com/mcodec/archive/2011/08/11/2114714.html?login=1






欢迎访问            直通车  http://blog.csdn.net/maikforever/article/details/6709147







更多相关文章

  1. Android编译环境(2) - 手工编译C模块
  2. 代码讲解Android(安卓)Scroller、VelocityTracker
  3. Android实现输入手机号时自动添加空格
  4. Android实现输入手机号时自动添加空格
  5. 《Android经验分享》周刊第9期
  6. android studio 设置编译apk的名称以及配置签名,打包方式
  7. Android(安卓)ActionBar的源代码分析(一)
  8. Android中图像变换Matrix的原理、代码验证和应用(一)
  9. Android(安卓)中自定义控件和属性(attr.xml,declare-styleable,T

随机推荐

  1. Android(安卓)APP转成launcher
  2. Android(安卓)异步加载解决方案(循环,多任
  3. Android(安卓)传输数据时Base64编码算法
  4. Android标题栏沉浸效果
  5. Android(安卓)SQLite数据库 《第一行代码
  6. Android(安卓)控件七 ImageView 控件
  7. Android(安卓)Sensor
  8. android stadio多渠道打包(一分钟搞定)
  9. Android系统服务-WindowManager
  10. Android的MediaRecorder架构介绍