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

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

2.新建Mode,引入依赖

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

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

  1. <uses-permission android:name="android.permission.WAKE_LOCK" />
  2. <uses-permission android:name="android.permission.INTERNET" />
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  4. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. <activity
  2. android:name="io.vov.vitamio.activity.InitActivity" android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
  3. android:launchMode="singleTop"
  4. android:theme="@android:style/Theme.NoTitleBar"
  5. android:windowSoftInputMode="stateAlwaysHidden" />

4.编写布局文件

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

5.编写activity文件

  1. package com.test.cctv;
  2. import android.app.Activity;
  3. import android.content.pm.ActivityInfo;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import io.vov.vitamio.LibsChecker;
  7. import io.vov.vitamio.MediaPlayer;
  8. import io.vov.vitamio.widget.MediaController;
  9. import io.vov.vitamio.widget.VideoView;
  10. public class TestActivity extends Activity {
  11. String url = "http://cctvcnch5c.v.wscdns.com/live/cctv11_2/index.m3u8";
  12. private VideoView mVideoView;
  13. @Override
  14. public void onCreate(Bundle icicle) {
  15. super.onCreate(icicle);
  16. if (!LibsChecker.checkVitamioLibs(this))
  17. return;
  18. setContentView(R.layout.activity_test);
  19. mVideoView = findViewById(R.id.surface_view);
  20. /*
  21. * Alternatively,for streaming media you can use
  22. * mVideoView.setVideoURI(Uri.parse(URLstring));
  23. */
  24. mVideoView.setVideoPath(url);
  25. mVideoView.setMediaController(new MediaController(this));
  26. mVideoView.requestFocus();
  27. mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
  28. @Override
  29. public void onPrepared(MediaPlayer mediaPlayer) {
  30. mediaPlayer.setPlaybackSpeed(1.0f);
  31. }
  32. });
  33. }
  34. }

Android Vitamio初探的更多相关文章

  1. 《Android 性能测试初探》

    移动测试站点推荐: https://testerhome.com/ 专项相关帖子推荐: <Android 性能测试初探>合集 移动无线应用专项测试浅谈 公开课: [腾讯课堂]Testerh ...

  2. Android Activity初探

    原地址:Android Activity初探 Activity是一个应用中的组件,它为用户提供一个可视的界面,方便用户操作,比如说拔打电话.照相.发邮件或者是浏览地图等.每个activity会提供一个 ...

  3. 十九、Android Activity初探

    原文:十九.Android Activity初探 Activity是一个应用中的组件,它为用户提供一个可视的界面,方便用户操作,比如说拔打电话.照相.发邮件或者是浏览地图等.每个activity会提供 ...

  4. Android 性能测试初探(六)

    书接前文 Android 性能测试初探之功耗(五) 本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速.弱网之类的测试,但本系列文章都不去一一探 ...

  5. Android 性能测试初探(五)

    书接上文 Android 性能测试初探之 GPU(四) 前文说了的一些性能测试项大家可能都听说,接下来我们聊聊大家不常关注的测试项- 功耗 . 功耗测试主要从以下几个方面入手进行测试 测试手机安装目标 ...

  6. Android 性能测试初探(四)

    书接上文 Android 性能测试初探(三) 自从 cpu及内存后,GPU 这个词对于 PC 性能测试者也不陌生了,什么 3Dmax,安兔兔之类的第三方软件让 GPU 在移动端性能测试领域都知晓,但对 ...

  7. Android 性能测试初探(三)

    书接上文 Android 性能测试初探(二) 本文接着往下聊,今天主聊 CPU 及 内存 看到这两个名词,做过PC性能测试的就比较熟悉了,同样的性能测试关注点 :) 首先说说内存,移动端关注的是内存消 ...

  8. Android 性能测试初探(二)

    书接前文 Android 性能测试初探(一).上回大体介绍了下在 android 端的性能测试项,现在我们就细节测试项做一些阐述(包括如何自己 DIY 测试). 首先我们来说说启动时间.关于应用的启动 ...

  9. android Vitamio Live 实时视频 记录

    Vitamio 下载地址: https://github.com/yixia/VitamioBundle/releases https://github.com/yixia/VitamioBundle ...

随机推荐

  1. 使用Razor表达式 使用条件语句 来自 精通ASP-NET-MVC-5-弗瑞曼

  2. AVL练习题——宠物收养所

    题目描述 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出 ...

  3. [ZJOI2008]树的统计(树链剖分)

    [ZJOI2008]树的统计(luogu) Description 一棵树上有 n 个节点,编号分别为 1 到 n,每个节点都有一个权值 w.我们将以下面的形式来要求你对这棵树完成一些操作: I. C ...

  4. ReactNative---android系统中Image组件无默认图片问题

    react native的Image组件通过网络地址加载图片的时候,若加载失败iOS有默认图片等属性,但安卓没有:但可以通过其他方式来实现: {Platform.OS == 'android'?< ...

  5. php--->使用callable强制指定回调类型

    php 使用callable强制指定回调类型 如果一个方法需要接受一个回调方法作为参数,我们可以这样写 <?php function dosth($callback){ call_user_fu ...

  6. 如何理解Unicode,UTF-8,UTF-16。

  7. mvc jQuery 点击按钮实现导出Excel功能 参数长短不限

    var exportSubmit=function(url, obj){ var form = $("<form>"); //定义一个form表单 form.attr( ...

  8. DWZ框架--页面样式丢失

    案例 今天我导入DWZ框架demo时,发现主页面样式丢失,出现了如下图那鬼样: 正常情况应该是有表格显示,并且用chrome开发者模式调试,可以看到有对应的样式,如下图所示: 先简单介绍下dwz框架的 ...

  9. Android Studio中Gradle sync failed

    问题:Android Studio中更新同步Gradle 失败 Gradle sync failed: Could not find com.android.tools.build:gradle:3. ...

  10. 并发队列之ConcurrentLinkedQueue

    本来想着直接说线程池的,不过在说线程池之前,我们必须要知道并发安全队列:因为一般情况下线程池中的线程数量是一定的,肯定不会超过某个阈值,那么当任务太多了的时候,我们必须把多余的任务保存到并发安全队列中 ...