ExoPlayer基本使用和關鍵類流程
#例子
極簡的邏輯,介面上僅僅顯示一個SimpleExoPlayerView。
##新增依賴
repositories {
jcenter()
google()
}
compile 'com.google.android.exoplayer:exoplayer:2.6.0'
##程式碼
不要忘記在AndroidManifest中新增網路許可權。
MainActivity:
public class MainActivity extends AppCompatActivity {
private final String testUrl="http://119.84.101.207/videos/v0/20180101/9c/20/33369eec370be393dd555a5a20234c02.mp4?key=0ebb94883d2df6eeb873b2dd48a35f687&dis_k=2d8cd483e5d3cf71159fcdfddad137350&dis_t=1514877572&dis_dz=CT-QIYI_SHMinRun&dis_st=44&src=iqiyi.com&uuid=a795aea-5a4b3284-bd&m=v&qd_ip=65e30cfd&qd_p=65e30cfd&qd_k=ab6b3e8679e84cccd49bfc91d5975606&qd_src=02028001010000000000&ssl=1&ip=101.227.12.253&qd_vip=0&dis_src=vrs&qd_uid=0&qdv=1&qd_tm=1514877572862";
SimpleExoPlayer mPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initExoPlayer();
}
private void initExoPlayer() {
RenderersFactory renderersFactory=new DefaultRenderersFactory(this);
DefaultTrackSelector trackSelector=new DefaultTrackSelector();
LoadControl loadControl=new DefaultLoadControl();
mPlayer= ExoPlayerFactory.newSimpleInstance(renderersFactory, trackSelector,loadControl);
SimpleExoPlayerView playerView=new SimpleExoPlayerView(this);
playerView.setPlayer(mPlayer);
setContentView(playerView);
Uri mp4Uri=Uri.parse(testUrl);
DefaultDataSourceFactory dataSourceFactory=new DefaultDataSourceFactory(
this, Util.getUserAgent(this,"exoPlayerTest"));
ExtractorsFactory extractorsFactory=new DefaultExtractorsFactory();
MediaSource mediaSource=new ExtractorMediaSource(
mp4Uri,dataSourceFactory,extractorsFactory,null,null);
mPlayer.prepare(mediaSource);
}
@Override
protected void onDestroy() {
mPlayer.release();
super.onDestroy();
}
}
#關鍵類流程圖
如果對播放器原理完全不理解的同學可以看下此文章:https://www.jianshu.com/p/82e778eb618b
相關文章
- scrapy 使用的基本流程和例子
- Java關鍵字之abstract(抽象類的概念和使用)Java抽象
- django框架使用基本流程Django框架
- EXOPlayer居中播放,類似ImageView的CENTER_CROPView
- 各類關鍵字
- 類與類之間的基本關係
- ExoPlayer的使用與解析(官方文件翻譯)
- Flutter中的自定義View的基本流程和相關知識FlutterView
- static關鍵字---"工具類"
- abstract關鍵字 super 關鍵字 類與繼承繼承
- Git基本命令 -- 基本工作流程 + 檔案相關操作Git
- vuex 基本入門和使用(三)-關於 mutationVue
- 教育類app開發的基本流程是什麼?APP
- Django基本流程Django
- 你真的瞭解JAVA中物件和類、this、super和static關鍵字嗎Java物件
- 業務流程管理的關鍵點是什麼?
- 基於ExoPlayer的ExoVideoViewIDEView
- 使用 Synchronized 關鍵字synchronized
- Android視訊開發進階(part5-ExoPlayer分析1,ExoPlayer的handler)Android
- Java 包裝類和基本型別Java型別
- StreamReader和StreamWriter類的基本操作
- IOS CoreLocation中CLLocationManager類的基本使用iOS
- JAVA API:ArrayList(泛型類)基本使用JavaAPI泛型
- js--class類、super和estends關鍵詞的學習筆記JS筆記
- 請求基本流程
- 事物的基本流程
- out關鍵字和ref關鍵字的區別
- 關於企業流程分類的對話
- 4_關於類的主動使用和被動使用
- 百萬DAU小遊戲必備7大關鍵流程遊戲
- Docker原理和基本使用Docker
- js關鍵字和方法JS
- 關鍵字和保留字
- 專案成功關鍵要素和專案成功關鍵要素
- 已計算的關鍵值和限制的關鍵值
- Synchronized關鍵字的使用synchronized
- Astah 使用 流程圖、類圖、時序圖AST流程圖時序圖
- 業務流程:詮釋RPA(機器人流程自動化)概念的關鍵機器人