1.到官网下载vitamio,最新的是5.0,下载下来的是一个demo,将其中的vitamio文件夹作为一个module导入
2.将vitamio的gradle文件的sdk编译版本和默认目标版本改成和目标应用一样
3.将vitamio下载的demo中的dist,和raw文件夹复制到目标项目中。如图:
4.在androidManifest中配置
(1:权限
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" />
(2:初始化vitamioActivity
<!--vitamio--> <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" />(3:在xml中使用自定义控件
<io.vov.vitamio.widget.VideoView android:id="@+id/mvitamio" android:layout_width="match_parent" android:layout_height="match_parent"(4:使用
vitamio = (VideoView) findViewById(R.id.mvitamio);
if (Vitamio.initialize(getApplicationContext())) { vitamio.setVideoURI(Uri.parse("此处放你播放的视频url")); //默认的controller MediaController controller = new MediaController(this); vitamio.setMediaController(controller); vitamio.start(); mTitle.setText(video.getTitle()); mTeacher.setText(video.getTeacher()); }
6.0以上的系统播放时会出现闪退,这是因为6.0的权限管理问题:解决方法:
将vitamio和目标项目中的targetSdk 的版本都改为21或者以下。原因:
Cannot load ffmpeg x86 build on Android 6.0 (Marshmallow) - libavcodec.so: has text relocations
Summary of the bug:
Shared libraries libswscale.so, libavcodec.so, libswresample.so, libswscale.so cannot be loaded on Android 6.0 device for x86 build due to text relocations.