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

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

2015-09-15 13:36 615 查看
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代码


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

Java代码


// Load the .so

static {

System.loadLibrary("SDL");

//System.loadLibrary("SDL_image");

//System.loadLibrary("SDL_mixer");

//System.loadLibrary("SDL_ttf");

System.loadLibrary("main");

}

10:改写nativeInit方法

Java代码


// 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项目播放你的视频吧.

下面是我播放视频的截图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: