阿里雲Android播放器SDK支援標準直播播放(RTMP/FLV/HLS等格式),本文介紹標準直播播放的實現方法。
重要
更多功能、API文檔及常見問題,請參考Android播放器。
操作步驟
步驟一:整合SDK
請參考Android播放器整合SDK進行整合。
步驟二:實現直播播放
快速開始。
請參考Android播放器快速開始實現基礎播放功能。
設定直播播放源。
Android播放器SDK支援2種直播播放方式,UrlSource播放和加密播放。
直播UrlSource播放
使用UrlSource播放方式播放直播視頻,需要將播放器的setUrl屬性設定為直播拉流地址。播放地址可以是第三方直播地址或阿里雲直播服務中的拉流地址。
阿里雲直播拉流地址可以通過直播控制台的地址產生器產生。詳情請參見直播地址產生器。
UrlSource urlSource = new UrlSource(); urlSource.setUri("播放地址");// 播放地址,可以是第三方直播地址,或阿里雲直播服務中的拉流地址。 aliPlayer.setDataSource(urlSource);直播DRM加密播放
直播DRM加密播放請參見如何播放加密視頻。
設定多清晰度。
說明支援阿里雲ApsaraVideo for Live的播放地址或經直播轉碼後(現支援通用轉碼和自訂轉碼)的轉碼流地址,直播轉碼詳情請參見轉碼管理;地址擷取方式請參見產生推流地址和播放地址。
支援ARTC協議和FLV協議的直播流的不同清晰度切換。
推流的gop size需要設定為1s或2s,過大會導致切流跳變。
播放網域名稱需開啟選項:FLV播放時輸出RTMP時間戳記、上遊斷流後輸出RTMP時間戳記;轉碼配置需開啟選項:時間戳記隨源、主要畫面格隨源,否則會導致切流卡頓或失敗。如需開啟請提交工單申請。
切換到不符合上述要求的流地址時,會切換失敗。
切換清晰度
通過
switchStream方法切換清晰度,傳遞對應新清晰度的URL即可。aliPlayer.switchStream(newUrl);清晰度切換通知
清晰度切換成功與失敗回調。
aliPlayer.setOnStreamSwitchedListener(new IPlayer.OnStreamSwitchedListener() { @Override public void onSwitchedSuccess(String url) { Log.i("SwitchStream", "switch success, url = " + url); } @Override public void onSwitchedFail(String url, ErrorInfo errorInfo) { Log.i("SwitchStream", "switch failed, url = " + url + ", error=" + errorInfo.getMsg()); } });