android阿里云基础视频播放器记录:
1、阿里云视频播放器sdk地址:https://help.aliyun.com/document_detail/61910.html?spm=a2c4g.11186623.6.810.4ed6533cEJ431r
2、创建demo集成sdk https://help.aliyun.com/document_detail/61910.html?spm=a2c4g.11186623.6.810.4ed6533cEJ431r 按照流程集成arr文件
android恶心人的地方就是: 明明很清楚的流程,就是会出不来,出问题,擦
项目根目录下:gradle.build添加
allprojects {
repositories {
flatDir {
dirs 'libs'
}
google()
jcenter()
}
}
app目录下:gradle.build添加
implementation(name: 'AlivcPlayer-3.4.8', ext: 'aar')
implementation(name: 'AlivcReporter-1.2', ext: 'aar')
implementation(name: 'AliyunVodPlayer-3.4.8', ext: 'aar')
这步听我的直接copy别自己手敲了,会报错,恶心至极
集成这三个arr要求minSdkVersion 16以上
3、集成步骤(可以按照官方文档或demo来做,这里供初次接触者参考)
说明:android端集成阿里云arr资源库 (基础播放)
1》、创建项目, app->libs下
AlivcPlayer-3.4.8.arr
AlivcReporter-1.2.arr
2》、app下的build.gradle添加依赖
//阿里云播放器
implementation(name: 'AlivcPlayer-3.4.8', ext: 'aar')
implementation(name: 'AlivcReporter-1.2', ext: 'aar')
3》、在项目根目录下build.gradle设置
allprojects {
repositories {
flatDir {
dirs 'libs'
}
google()
jcenter()
}
}
然后sync同步依赖
4》、代码初始化,application初始化阿里云sdk player
//初始化播放器
AliVcMediaPlayer.init(getApplicationContext());
5》、manifest中添加权限
6》、activity使用播放:
mPlayer = new AliVcMediaPlayer(AliVcMediaPlayerActivity.this,surfaceView);这一句代码不能直接放在oncreat()里面。
必须首先获取到surfaceView 的holder :surfaceView.getHolder(),然后添加一个回调,在回调方法surfaceCreated()中创建AliVcMediaPlayer实例。
(1)、xml中创建surfaceview,实例化surfaceview,并创建 SurfaceHolder
mSurfaceView= (SurfaceView)findViewById(R.id.mSurfaceView);
SurfaceHolder surfaceHolder = mSurfaceView.getHolder();
surfaceHolder.addCallback( new SurfaceCallback());
(2)、preparePlay
/**
* 播放视频准备
*/
private void preparePlay(){
mPlayer = new AliVcMediaPlayer(this, mSurfaceView);
//开启缓存
mPlayer.setPlayingCache(true,createCacheFiles(),60,300);
//填充效果
mPlayer.setVideoScalingMode(MediaPlayer.VideoScalingMode.VIDEO_SCALING_MODE_SCALE_TO_FIT);
//开启循环播放
mPlayer.setCirclePlay(true);
//准备完成
mPlayer.setPreparedListener(new MediaPlayer.MediaPlayerPreparedListener() {
@Override
public void onPrepared() {
Log.i("mPlayer","setPreparedListener");
mPlayer.play();
}
});
/*** 其他监听和参数自己去设置 ****/
}
(3)、SurfaceCallback类的实现
/**
* SurfaceCallback
*/
private class SurfaceCallback implements SurfaceHolder.Callback{
@Override
public void surfaceCreated(SurfaceHolder holder) {
//准备播放
preparePlay();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (null != mPlayer) {
mPlayer = null;
}
}
}
(4)、开始播放视频
/**
* 播放视频
* @param videoUrl
*/
private void startPlay(String videoUrl) {
if(mPlayer==null){
preparePlay();
}
//设置缺省编码类型:0表示硬解;1表示软解;
//如果缺省为硬解,在使用硬解时如果解码失败,会尝试使用软解
//如果缺省为软解,则一直使用软解,软解较为耗电,建议移动设备尽量使用硬解
mPlayer.setDefaultDecoder(0);
//如果从历史点开始播放
//mPlayer.seekTo(position);
//准备开始播放
mPlayer.prepareAndPlay(videoUrl);
}
(5)、停止播放视频
/**
* 停止播放 (其他的,暂停等功能自己可以定义方法实现)
*/
private void stopPlay() {
if (mPlayer.isPlaying()){
Toast.makeText(MainActivity.this,"停止",Toast.LENGTH_LONG).show();
mPlayer.stop();
mPlayer.destroy();
mPlayer =null;
}else{
Toast.makeText(MainActivity.this,"从来没放过",Toast.LENGTH_LONG).show();
}
}
作者:漠天515
来源:CSDN
原文:https://blog.csdn.net/u010326875/article/details/84861459
版权声明:本文为博主原创文章,转载请附上博文链接!
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' |
‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" |
“Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash |
– is en-dash, — is em-dash |
一个具有注脚的文本。2
Markdown将文本转换为 HTML。
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
我们依旧会支持flowchart的流程图:
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
mermaid语法说明 ↩︎
注脚的解释 ↩︎