android多媒体——Vitamio

简介: title: android多媒体——Vitamiodate: 2018-10-14 00:03:07tags: android Vitamio简介最近偶然抓到某直播平台的api,而且这也是Android的基础技能,所以突发奇想做个直播功能。

title: android多媒体——Vitamio
date: 2018-10-14 00:03:07
tags: android Vitamio


简介

最近偶然抓到某直播平台的api,而且这也是Android的基础技能,所以突发奇想做个直播功能。
用的库是Vitamio,虽然也有一点点小坑,但这个库用法简单,功能强大。
能播放MKV,FLV,MP4等主流视频格式,也支持MMS, RTSP, RTMP, HLS(m3u8)等常见的多种视频流媒体协议。

1.导入与配置

参考博客:https://blog.csdn.net/qq_29078329/article/details/75039690
由于官网提供的是module,不是jar,所以要先从github下载:Vitamio的github地址

下好后android studio直接导入即可,建议新手将vitamio和vitamio-sample都导入
之后参考博客内容,在AndroidManifest中,注册io.vov.vitamio.activity.InitActivity:

<activity
            android:name="io.vov.vitamio.activity.InitActivity"
            android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
            android:launchMode="singleTop"
            android:theme="@android:style/Theme.NoTitleBar"
            android:windowSoftInputMode="stateAlwaysHidden" />

添加权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2. 使用vitamio的VideoView

这一步我建议直接参考vitamio-samlp中的VideoViewBuffer.class,播放视频最基本的内容都包含在内:


img_374760d8cf14e7b8c807d32c0969fafc.png
image.png

实在不行就将代码复制过去,先实现播放功能,在根据自己的需求修改。

问题

1.找不到 libvinit.so 文件

参考博客:https://www.jianshu.com/p/d08064bf6b85
具体错误内容:
Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
[DexPathList[[zip file "/data/app/com.pckgname.live-2/base.apk"],
nativeLibraryDirectories=[/data/app/com.pckgname.live-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libvinit.so"

我们注意两处,UnsatisfiedLinkError和couldn't find "libvinit.so"。
是因为找不到libvinit.so,但这个文件确实在vitamio的libs文件夹下面。

img_17a349b5e3a1e34a61d26eb01e7e0c73.png
.so文件所在位置

所以我们要给它指名位置,在app的gradle下加入:

ndk {
        abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
    }
sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}
img_8279541ed9d12f33dac0f4853e697afe.png
修改gradle

2.无法在暂时无法在Android api 23以上的版本运行

参考博客:https://blog.csdn.net/kuixiaoba/article/details/51490008
解决:同时把app和vitamio中的gradle,将目标SDK版本(targetSdkVersion)调低于23就可以了,如改成21.

img_d825b7fdd2868d46e840668acb9cb756.png
修改targetSdkVersion

目录
相关文章
|
6月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
148 0
|
Android开发 Java 编解码
|
Android开发
【Android 多媒体开发】 MediaPlayer 网络视频播放器(二)
【Android 多媒体开发】 MediaPlayer 网络视频播放器(二)
493 0
【Android 多媒体开发】 MediaPlayer 网络视频播放器(二)
|
前端开发 Android开发
【Android 多媒体开发】 MediaPlayer 网络视频播放器(一)
【Android 多媒体开发】 MediaPlayer 网络视频播放器(一)
257 0
【Android 多媒体开发】 MediaPlayer 网络视频播放器(一)
|
前端开发
1-MI-Android多媒体之Bitmap
零、前言 [1].Bitmap是关于图象的类,也就是位图 [2].生成Bitmap对象的方式 [3].BitmapFactory.Options [4].
1149 0
|
API 数据库 Android开发