利用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项目播放你的视频吧.
下面是我播放视频的截图
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项目播放你的视频吧.
下面是我播放视频的截图
相关文章推荐
- Android NDK
- 兔子--查看Android Studio的版本信息
- android机型排行榜(201509)
- android 动态背景的实现以及SurfaceView中添加EditText控件
- Android(java)学习笔记252:ContentProvider使用之内容观察者01
- Android之Handler用法总结
- android错误:Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
- Android 中在4.0上显示gif图片
- android BroadcastReceiver(二)
- Android技术知识网址集合
- Android使用ksoap2-android调用WebService学习
- Android进价篇-SOAP协议
- Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- xamarin中android环境安装步骤和ios环境部署!
- Android 多媒体:SoundPool—简短小音效
- Android第五十期 - 仿美团查询搜索ListView+PopupWindow
- Android第五十期 - 仿美团查询搜索ListView+PopupWindow
- Android Fragment 生命周期图
- 三步升级已安装的 Android SDK 和 ADT 插件
- android混淆详解