vitnmio 在eclipse上的引入,vitamio-sample 的生成,和rtmp,rtsp,hls播放器的实现

vitnmio 是一个android视频框架,它依赖ffmpeg,使用它可以很方便的播放rtmp,rtsp,hls,和其他网络流。

下载vitnmio:

https://codeload.github.com/yixia/VitamioBundle/zip/master

下载后解压:


搞了两三天的android studio,也没有能生成,最后还是在eclipse中生成了

android studio中的目录和eclipse 是一一对应的,我们只需要建一个空的eclipse android项目,然后把文件复制进去就可以了。

我们先建主项目:

目录对应关系就像下图


需要注意的是在eclipse中src文件夹是不能直接往里粘贴文件夹的,需要先建package。

res中自动生成没用,都删了吧。

完成之后,特别重要的一点来了,因为需要调用so库文件,所以需要把Java工程变为c++工程,

在主项目上右键-》android Tools-》Add Natlive Support,输入自己的so模块名称,这里我输入vitamioTest,变为c++工程。

然后在jni文件夹下创建Application.mk文件内容如下

#指明编译时生成armeabi-v7a架构的so文件  
APP_ABI := armeabi-v7a 

在Android.mk中,需要将so文件引入到工程中,内容如下

LOCAL_PATH := $(call my-dir)
#引入vitnmio的每个so模块
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg
LOCAL_SRC_FILES := armeabi-v7a/libffmpeg.so
LOCAL_MODULE_FILENAME:=libffmpeg ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := OMX.11
LOCAL_SRC_FILES := armeabi-v7a/libOMX.11.so
LOCAL_MODULE_FILENAME:=libOMX.11 ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := OMX.14
LOCAL_SRC_FILES := armeabi-v7a/libOMX.14.so
LOCAL_MODULE_FILENAME:=libOMX.14 ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := OMX.18
LOCAL_SRC_FILES := armeabi-v7a/libOMX.18.so
LOCAL_MODULE_FILENAME:=libOMX.18 ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := OMX.9
LOCAL_SRC_FILES := armeabi-v7a/libOMX.9.so
LOCAL_MODULE_FILENAME:=libOMX.9 ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := stlport_shared
LOCAL_SRC_FILES := armeabi-v7a/libstlport_shared.so
LOCAL_MODULE_FILENAME:=libstlport_shared ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := vao.0
LOCAL_SRC_FILES := armeabi-v7a/libvao.0.so
LOCAL_MODULE_FILENAME:=libvao.0  ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := vplayer
LOCAL_SRC_FILES := armeabi-v7a/libvplayer.so
LOCAL_MODULE_FILENAME:=libvplayer ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := vscanner
LOCAL_SRC_FILES := armeabi-v7a/libvscanner.so
LOCAL_MODULE_FILENAME:=libvscanner  ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := vvo.0
LOCAL_SRC_FILES := armeabi-v7a/libvvo.0.so
LOCAL_MODULE_FILENAME:=libvvo.0  ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE := vvo.7
LOCAL_SRC_FILES := armeabi-v7a/libvvo.7.so
LOCAL_MODULE_FILENAME:=libvvo.7  ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE :=vvo.8
LOCAL_SRC_FILES := armeabi-v7a/libvvo.8.so
LOCAL_MODULE_FILENAME:=libvvo.8 ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE :=vvo.9
LOCAL_SRC_FILES := armeabi-v7a/libvvo.9.so
LOCAL_MODULE_FILENAME:=libvvo.9 ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  

include $(CLEAR_VARS)
LOCAL_MODULE :=vvo.j
LOCAL_SRC_FILES := armeabi-v7a/libvvo.j.so
LOCAL_MODULE_FILENAME:=libvvo.j ##指明模块别名
include $(PREBUILT_SHARED_LIBRARY) ##指明此模块需要预编译  
#我自己的so模块
include $(CLEAR_VARS)

LOCAL_MODULE    := vitamioTest
LOCAL_SRC_FILES := vitamioTest.cpp

include $(BUILD_SHARED_LIBRARY)


然后点击工具栏 -》 Project-》build Project,来完成工程中c++部分的构建。

如果这个按钮不能点击,需要查看eclipse的ndk插件,下载地址

https://pan.baidu.com/s/1gfeZaev,并且配置好ndk的路径。



build Project完成后,会在libs/armeabi-v7a 下生成各种so库。


主项目到这里就基本上完了。

接下来eclipse新建vitamio-sampleTest工程,为包含主项目完成视频播放。

子项目rar和eclipse工程文件夹对应关系如下。



最后需要配置主项目和子项目的依赖关系。

在主项目上右键-》properties


勾选 is library,使它变为一个库项目,使其他工程可以引用它。

在子项目中右键-》properties



着样的话。应该报错就大概没有了。

然后我们真机测试,播放几个网络流。

//path="http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8";
//path="rtmp://live.hkstv.hk.lxdns.com/live/hks";
//path="rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov";

网络流path在MediaPlayerDemo_Video的98行定义

VitamioListActivity是主Activity

看看效果图吧。







工程我上传了

https://pan.baidu.com/s/11s1McTHpPtMj8Iq3bcGrkw

在 诺基亚 7 android 7.1上安装没问题,

在华为 4x android 4.1 上却无法安装 ,可能是其他原因 

apk在 vitamio-sampleTest\bin里

视频播放菜单时 MediaPlayer -》  PLAY STREAMING VIDEO



猜你喜欢

转载自blog.csdn.net/qq_31683775/article/details/79788257