android之视频直播与播放Vitamio
直播APP
l? 直播原理
直播本質(zhì):實(shí)時(shí)推送/拉取過來的音視頻數(shù)據(jù)
直播相關(guān)的協(xié)議:
l? RTMP(實(shí)時(shí)消息的傳輸協(xié)議)
RTMP協(xié)議是一個(gè)互聯(lián)網(wǎng)TCP/IP五層體系結(jié)構(gòu)中的應(yīng)用層協(xié)議
RTMP協(xié)議可以用來推送又可以用來直播
RTMP協(xié)議中基本的數(shù)據(jù)單元成為消息(Message)
RTMP協(xié)議在互聯(lián)網(wǎng)傳輸數(shù)據(jù)的時(shí)候,消息會(huì)被拆分成更小的單元,成為消息塊(Chunk)
二:FLV協(xié)議
FLV協(xié)議是在大塊的視頻幀和音頻幀頭部加入一些標(biāo)記條信息。
FLV協(xié)議在延遲變現(xiàn) ?和 ?大規(guī)模并發(fā)方面和成熟
FLV非常適合 ?手機(jī)端APP的直播協(xié)議
三:HLS
???? 蘋果推出的解決方案:
???? 將視頻分成5~10秒的視頻小分片,然后用m3u8索引進(jìn)行管理。
???? HLS在iphone和大部分Android手機(jī)瀏覽器上的支持非常給力,
常用的想QQ和微信朋友圈的URL分享。
什么是m3U8
VItamio操作:
Vitamio 能夠流暢播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常見格式的視頻,還可以在Android 上支持 MMS, RTSP, RTMP, HLS(m3u8) 等常見的多種視頻流媒體協(xié)議,包括點(diǎn)播與直播。?
Github下載地址:https://github.com/yixia/VitamioBundle
???? 第一步在GitHub上下載Vitamio的依賴庫,下載后的結(jié)構(gòu)為:
之后將Vitamio文件夾作為Module導(dǎo)入到項(xiàng)目中。
將module導(dǎo)入到APP中,作為依賴庫使用
或者直接在app的build.gradle中添加
將Vitamio的依賴庫導(dǎo)入到APP中!
注意:最好是將Vitamio—res下的raw中的libarm.so ??so
文件復(fù)制到app?res ?下的raw中:
之后可能會(huì)出現(xiàn)的 問題是:顯示api過期等問題,
學(xué)要在build,gradle中加入代碼:
之后將defaultConfig中的targetSdkVersion設(shè)置為21 Vitamio的版本為4.0.0。此版本測試為21 不會(huì)出現(xiàn)問題!之后clear一下過程!編輯即可通過!!
清單文件的操作:
添加必要的權(quán)限:
<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"/>
導(dǎo)入actiivity
<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"/>
XML布局的設(shè)置:
布局使用io.vov.vitamio.widget.VideoView中的VideoView,切記不要使用原始的VideoView。
?
?
Activity的操作:
1、??????檢測Vitamio框架是否可以使用
??? if(!LibsChecker.checkVitamioLibs(this)) {
??????????? return;
??????? }
不建議使用模擬器進(jìn)行測試,真機(jī)測試出現(xiàn) 閃退的情況(說明Vitamio不能使用)上面代碼直接用Toast進(jìn)行的是。
2、??????初始化加載庫文件
?? Vitamio.Initialized(getApplicationContext());
3、??????判讀初始化是否成功(模擬器部分顯示不成功)
?? Vitamio.isInitialized(getApplicationContext());
返回值為boolean,true表示初始化成功,false表示初始化失敗。
4、??????設(shè)置播放的url地址
mVideoView.setVideoURI(Uri.parse(url));
???? 5、???? 設(shè)置控制器(this表示系統(tǒng)知道的模式,可以自定義)
MediaControllercontroller = new MediaController(this);
???????????videoView.setMediaController(controller);
???? 實(shí)現(xiàn)的接口:
函數(shù):
總結(jié)
以上是生活随笔為你收集整理的android之视频直播与播放Vitamio的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pagerAdapter 与Fragme
- 下一篇: 微信消息提醒与消息数字提示之BadgeV