麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > Android > 正文

Android基于IJKPlayer視頻播放器簡(jiǎn)單封裝設(shè)計(jì)

2019-10-21 21:49:59
字體:
供稿:網(wǎng)友

播放器的簡(jiǎn)單設(shè)計(jì)

播放器基于IJKPlayer來設(shè)計(jì)的, 播放器大致分三層

1.播放內(nèi)核(基于ijkMediaplayer)

2.播放器View

3.播放器的MediaController

1、封裝播放內(nèi)核

我們都知道需要播放一個(gè)視頻需要三個(gè)過程 1.create MediaPlayer 2.MediaPlayer prepare 3.MediaPlayer 與 Surface 綁定

xinvideoplayer中使用了VideoManager來控制ijkmediaplayer 所有的操作

三個(gè)過程 我們使用 HandlerThread + Hander 來實(shí)現(xiàn) 第一個(gè)過程創(chuàng)建大致可能需要100ms左右,嚴(yán)重影響UI線程!!!

第一個(gè)過程: create MediaPlayer

new IjkMediaPlayer() 設(shè)置一些播放器回調(diào)方法

//IJK 的 Mediaplayer api 類似 Android 系統(tǒng)播放器api//IMediaPlayer.classpublic interface IMediaPlayer{ void setOnPreparedListener(IMediaPlayer.OnPreparedListener var1); //prepareAsync 之后回調(diào)方法 void setOnCompletionListener(IMediaPlayer.OnCompletionListener var1); //播放完成回調(diào)方法 void setOnBufferingUpdateListener(IMediaPlayer.OnBufferingUpdateListener var1);//當(dāng)播放網(wǎng)絡(luò)的數(shù)據(jù)流的buffer發(fā)生變化的時(shí)候 void setOnSeekCompleteListener(IMediaPlayer.OnSeekCompleteListener var1);//當(dāng)seek定位操作完成后 void setOnVideoSizeChangedListener(IMediaPlayer.OnVideoSizeChangedListener var1);//當(dāng)視頻的大小第一次被知道或者發(fā)生改變時(shí) void setOnErrorListener(IMediaPlayer.OnErrorListener var1);//當(dāng)有發(fā)生錯(cuò)誤 void setOnInfoListener(IMediaPlayer.OnInfoListener var1);//當(dāng)有信息或者警告 void setOnTimedTextListener(IMediaPlayer.OnTimedTextListener var1); //當(dāng)媒體的時(shí)間數(shù)據(jù)需要被顯示}

第二個(gè)階段 prepare

mediaPlayer.prepareAsync(); 等待回調(diào) IMediaPlayer.OnPreparedListener#onPrepare()

第三個(gè)階段 給IJKMediaPlayer 綁定 Surface 呈現(xiàn)畫面

mediaPlayer.setSurface();

2、播放器View

實(shí)現(xiàn) 播放器基本方法(IViewPlayer)和 播放內(nèi)核回調(diào)方法(IMediaPlayerListener)

IMediaPlayerListener 是包裝 IMediaPlayer 所有接口并通過 Handle 發(fā)送到主線程中實(shí)現(xiàn)

//IVideoPlayer.javainterface IVideoPlayer{ void start();//開始播放 void pause();//暫停播放 void seekTo(long time); //seekto time void release();//關(guān)閉播放 void setVideoPath();//設(shè)置視頻路徑 void onStartFullScreen();//全屏播放 void onBackFullScreen(); //退出全屏 void onResumeVideo();//播放器后臺(tái)喚起 void onPauseVideo();//切換后臺(tái) int getCurrentState();//視頻的當(dāng)前狀態(tài) int getCurrentScreenState(); //當(dāng)前屏幕的狀態(tài) 例如小屏,大屏,豎屏 long getTcpSpeed();//獲取網(wǎng)速 void switchVideoSource(String url,long delay);//切換清晰度 并流暢的切換}public interface MediaPlayerListenerextends IVideoPlayer{ void onPrepared(); void onAutoCompletion(); void onCompletion(); void onBufferingUpdate(int percent); void onSeekComplete(long currentPosition); void onError(int what, int extra); void onInfo(int what, int extra); void onVideoSizeChanged();}

以上接口大致滿足了所有播放器的功能要求!!

3.MediaController

public interface IVideoController{ //顧名思義 ViewbindPlayer(IVideoPlayer player); void onChangeVideoStatus(IVideoPlayer player,int old_status, int new_status); void onChangeScreenStatus(IVideoPlayer player,int old_status, int new_status); boolean onChangedNetWork(int currentNetState); void onVideoProgress(int percent, long curr_position, long duration); void unbindPlayer(IVideoPlayer player); boolean isLock(); void onVideoDefinitionSwitched(); void show(); void hide(); boolean isShowing();

BaseVideoPlayer#setVideoController()

播放器的簡(jiǎn)單接入使用

videoplayer.setVideoPath(url);videoplayer.start();//開始播放//如果需要后臺(tái)暫停喚起繼續(xù)播放videoplayer.onVideoResume();videoplayer.onVideoPause();//如果需要后臺(tái)暫停喚起繼續(xù)播放全屏?xí)r控制返回鍵問題:if (!VideoPlayerUtils.onBackPressed()) { //返回的正常邏輯}...

播放器的內(nèi)部實(shí)現(xiàn)

Android,IJKPlayer,視頻播放器,封裝設(shè)計(jì)

預(yù)加載需求 & 復(fù)用播放器

Android,IJKPlayer,視頻播放器,封裝設(shè)計(jì)

智能后臺(tái)&喚起處理

Android,IJKPlayer,視頻播放器,封裝設(shè)計(jì)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久久久久久久av | 成人精品一区二区 | 久久一区国产 | 狠狠干视频网站 | 午夜视频观看 | 国产成年人视频 | 在线a亚洲视频播放在线观看 | 午夜视频福利 | 成人三级黄色片 | 欧美日韩色片 | 久久思思爱 | 日本在线精品视频 | 一本在线高清码电影 | 99ri精品| 久久久久久久久久久高潮一区二区 | 蜜桃视频在线观看免费 | 插插操 | 人人玩人人爽 | 久草免费新视频 | 曰韩一二三区 | 国产高清一区 | 色域tv| 成人午夜在线免费观看 | 国产成年人在线观看 | 欧美黑人伦理 | 一级免费在线 | 亚洲精品aaaaa | 欧美日韩综合视频 | 在线观看福利网站 | 久久av免费 | 羞羞的视频在线 | 黄色18网站 | 女人a级毛片 | 成人在线97| 九一免费国产 | 特一级黄色毛片 | 一区二区国产在线 | 康妮卡特欧美精品一区 | 国产91丝袜在线播放 | 国产一级毛片高清 | 91美女视频在线观看 |