利用ffmpeg和SDL实现一个跨android版本的音视频播放器

    博客分类:
  • 多媒体
ffmpeg android多媒体 sdl 视频 jni 1:从 http://www.libsdl.org/tmp/下载SDL for android 版本(我下载的是 SDL-1.3.tar.gz )
2:从 https://github.com/havlenapetr/FFMpeg下载 havlenapetr 的ffmpeg for android版本。
3:把你下载的SDL for android版本解压到本地目录,解压到本地.
4:解压后的根目录下面有一个android-project工程,在jni目录下面新建一个SDL目录,把根目录下面的src目录,include目录和Android.mk拷贝到新建里的SDL目录下面
5:把ffmpeg for android 工程下jni目录的libffmpeg拷贝到android-project的jni目录下
6: http://dranger.com/ffmpeg/下载tutorial08代码并把文件放在jni的src目录下
8:编写tutorial08的mk文件
Java代码
  1. LOCAL_PATH:=$(callmy-dir)
  2. include$(CLEAR_VARS)
  3. LOCAL_MODULE:=main
  4. SDL_PATH:=../SDL
  5. LOCAL_C_INCLUDES+=$(LOCAL_PATH)/$(SDL_PATH)/include\
  6. $(LOCAL_PATH)/../libffmpeg\
  7. #Addyourapplicationsourcefileshere...
  8. LOCAL_SRC_FILES:=$(SDL_PATH)/src/main/android/SDL_android_main.cpp\
  9. tutorial08.c
  10. LOCAL_CFLAGS+=-DGL_GLEXT_PROTOTYPES
  11. LOCAL_SHARED_LIBRARIES:=SDL
  12. LOCAL_STATIC_LIBRARIES:=libavformatlibavcodeclibavutillibpostproclibswscale
  13. LOCAL_LDLIBS:=-ldl-lGLESv2-llog
  14. include$(BUILD_SHARED_LIBRARY)

9:SDLActivity中load so
Java代码
  1. //Loadthe.so
  2. static{
  3. System.loadLibrary("SDL");
  4. //System.loadLibrary("SDL_image");
  5. //System.loadLibrary("SDL_mixer");
  6. //System.loadLibrary("SDL_ttf");
  7. System.loadLibrary("main");
  8. }

10:改写nativeInit方法
Java代码
  1. //RunsSDL_main()
  2. StringavPath=Environment.getExternalStorageDirectory()+File.separator+"DancingQueen.mp4";
  3. SDLActivity.nativeInit(avPath);
  4. //Log.v("SDL","SDLthreadterminated");


11:进入到android-project项目根目录,ndk-build 耐心等待一会就可以编译出两个库libSDL.so和libmain.so



运行你的android-project项目播放你的视频吧.

下面是我播放视频的截图




更多相关文章

  1. Android之从零开始JNI研发
  2. (Mac)反编译Android(安卓)APK详细操作指南[转]
  3. Android(安卓)L下载
  4. Android(安卓)NDK的安装。(下一篇是关于 opencv 2.3.1的引用 )
  5. Android(安卓)知识体系学习目录
  6. Android(安卓)JNI之HelloWorld
  7. android 6.0 权限崩溃分析:android.system.ErrnoException: statv
  8. Android中存储目录
  9. 向sdcard添加文件fail可能的情况

随机推荐

  1. [置顶] android对字段的验证
  2. Android WebView学习
  3. 分割线
  4. android2.x中android:layout_marginRight
  5. Android 替换全局字体
  6. Android Studio 报错显示 mips64el-linux
  7. RelativeLayout相对布局
  8. Android实现日历
  9. 关于Android(安卓)VideoView seekTo不准
  10. AndroidManifest中activity属性参数设置