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