GitHub: https://github.com/yixia/VitamioBundle

1.下载完毕导入用Android Studio打开

2.新建Mode,引入依赖

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation project(path: ':vitamio')
}

3.AndroidManifest加入相应权限以及必要Activity

    <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" />
<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" />

4.编写布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <io.vov.vitamio.widget.VideoView
android:id="@+id/surface_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>

5.编写activity文件

package com.test.cctv;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View; import io.vov.vitamio.LibsChecker;
import io.vov.vitamio.MediaPlayer;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView; public class TestActivity extends Activity { String url = "http://cctvcnch5c.v.wscdns.com/live/cctv11_2/index.m3u8";
private VideoView mVideoView; @Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
if (!LibsChecker.checkVitamioLibs(this))
return;
setContentView(R.layout.activity_test);
mVideoView = findViewById(R.id.surface_view); /*
* Alternatively,for streaming media you can use
* mVideoView.setVideoURI(Uri.parse(URLstring));
*/
mVideoView.setVideoPath(url);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus(); mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.setPlaybackSpeed(1.0f);
}
}); } }

最新文章

  1. CSS3盒模型display:box;box-flex:3;
  2. Linq语言性能比较
  3. js中setTimeout()的使用bug
  4. hdu5882 Balanced Game
  5. Bouncycastle中的RSA技术以及解决之道
  6. Percona-Xtrabackup 2.3.3 慢查询不再堵塞备份(一)
  7. DataGridView控件
  8. 2014多校第五场1010 || HDU 4920 Matrix multiplication(矩阵乘法优化)
  9. spring beans源码解读之--BeanFactory的注册
  10. html p标签换行问题
  11. mysql 之SQL语句--NSERT SELECT ON DUPLICATE KEY UPDATE的写法
  12. 数据库原理 - 序列3 - 事务是如何实现的? - Redo Log解析
  13. 看AppCan移动管理平台如何助力企业移动化
  14. &lt;Android基础&gt;(三) UI开发 Part 1
  15. session删除
  16. aliyun添加数据盘parted方式分区格式化和lvm挂载及数据盘的扩容
  17. mac home目录创建文件夹,修改权限
  18. [转载]JavaScript 运行机制详解:再谈Event Loop
  19. 详解Mybatis通用Mapper介绍与使用
  20. mysql 字符集排查

热门文章

  1. c语言秋季作业3
  2. 本地Linux虚拟机内网穿透,服务器文件下载到本地磁盘
  3. K8s下部署Istio
  4. JDK 原生动态代理是怎么实现的 + 面试题
  5. Hexo Next 接入 google AdSense 广告
  6. PAT乙级(Basic Level)真题,福尔摩斯的约会
  7. Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现
  8. Codeforces_734_F
  9. ARTS Week 14
  10. kendo ui 好用的小部件--grid