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中添權重限
<!--阿裡播放器權限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
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編輯器進行了一些功能拓展與文法支援,除了标準的Markdown編輯器功能,我們增加了如下幾點新功能,幫助你用它寫部落格:
- 全新的界面設計 ,将會帶來全新的寫作體驗;
- 在創作中心設定你喜愛的代碼高亮樣式,Markdown 将代碼片顯示選擇的高亮樣式 進行展示;
- 增加了 圖檔拖拽 功能,你可以将本地的圖檔直接拖拽到編輯區域直接展示;
- 全新的 KaTeX數學公式 文法;
- 增加了支援甘特圖的mermaid文法1 功能;
- 增加了 多螢幕編輯 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';
生成一個适合你的清單
- 項目
- 項目
- 項目
- 項目
- 項目1
- 項目2
- 項目3
- 計劃任務
- 完成任務
建立一個表格
一個簡單的表格是這麼建立的:
項目 | Value |
---|---|
電腦 | $1600 |
手機 | $12 |
導管 | $1 |
設定内容居中、居左、居右
使用
:---------:
居中
使用
:----------
居左
使用
----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标點字元轉換為“智能”印刷标點HTML實體。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | | ‘Isn’t this fun?’ |
Quotes | | “Isn’t this fun?” |
Dashes | | – is en-dash, — is em-dash |
建立一個自定義清單
- Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何建立一個注腳
一個具有注腳的文本。2
注釋也是必不可少的
Markdown将文本轉換為 HTML。
KaTeX數學公式
您可以使用渲染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 圖表
可以使用UML圖表進行渲染。 Mermaid. 例如下面産生的一個序列圖::
這将産生一個流程圖。:
- 關于 Mermaid 文法,參考 這兒,
FLowchart流程圖
我們依舊會支援flowchart的流程圖:
- 關于 Flowchart流程圖 文法,參考 這兒.
導出與導入
導出
如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到 文章導出 ,生成一個.md檔案或者.html檔案進行本地儲存。
導入
如果你想加載一篇你寫過的.md檔案或者.html檔案,在上方工具欄可以選擇導入功能進行對應擴充名的檔案導入,
繼續你的創作。
- mermaid文法說明 ↩︎
- 注腳的解釋 ↩︎