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

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目录下 ;

(turorial是一个使用ffmpeg和sdl的示例代码,非常不错,学习地址:http://dranger.com/ffmpeg/tutorial01.html)
7:编写tutorial08的mk文件 。

 
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := main

SDL_PATH := ../SDL

LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(SDL_PATH)/include \
		    $(LOCAL_PATH)/../libffmpeg \

# Add your application source files here...
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \
	tutorial08.c

LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
LOCAL_SHARED_LIBRARIES := SDL
LOCAL_STATIC_LIBRARIES := libavformat libavcodec libavutil libpostproc libswscale

LOCAL_LDLIBS := -ldl -lGLESv2 -llog

include $(BUILD_SHARED_LIBRARY)

9:SDLActivity中load so
 
 // Load the .so
    static {
        System.loadLibrary("SDL");
        //System.loadLibrary("SDL_image");
        //System.loadLibrary("SDL_mixer");
        //System.loadLibrary("SDL_ttf");
        System.loadLibrary("main");
    }

10:改写nativeInit方法
// Runs SDL_main()
    	String avPath = Environment.getExternalStorageDirectory()+File.separator+"DancingQueen.mp4";
        SDLActivity.nativeInit(avPath);

        //Log.v("SDL", "SDL thread terminated");


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



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

下面是我播放视频的截图





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值