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