Android開源:VideoPlayer - 功能齊全的視頻播放器
介紹
播放器寫法參考系統VideoView,系統的寫法比較權威很有參考價值
在VideoView基礎上添加了常見的手勢滑動、鎖屏功能等
將系統控件中的播放器部分抽離出來,封裝成了一個單獨的類BDVideoPlayer,可以自行替換成vitamio、ijk等其他播放器
播放器的控制面板、錯誤提示、手勢滑動時顯示的樣式都單獨封裝成View,可按需自己修改
播放器功能封裝成了model,代碼獨立,引用修改都比較方便
Demo中的VideoDetailActivity頁面演示了如何使用本播放器
基礎功能
- 播放視頻
- 支持本地視頻、網絡視頻
- 播放、暫停
- 暫停時,面板的顯示不會有延遲消失效果,恢復播放時才有 </ul> </li>
- SeekTo進度拖動
- 操作面板顯示、延遲消失
- 點擊視頻畫面會顯示、隱藏操作面板
- 顯示后不操作會3秒后自動消失 </ul> </li>
- 播放器回調
- 將系統MediaPlayer所有回調進行統一封裝,回調方法名和參數保持一致,減少學習成本
- 新增播放器當前狀態回調,具體狀態參考系統MediaPlayer生命周期圖
- 新增loading狀態回調,規則為"系統info回調的加載中"、"Preparing狀態"時顯示;"系統info回調的加載結束 "、"IDEL狀態"、"ERROR狀態"、"PREPARED狀態"時隱藏 </ul> </li> </ul>
- 橫豎屏切換
- 豎屏時,操作面板底部有全屏按鈕,點擊切換到橫屏全屏狀態
- 橫屏時,隱藏全屏按鈕,點擊返回會變回豎屏狀態
- 切換全屏時,隱藏statusbar;豎屏時恢復原有狀態
- 豎屏時,頂部返回按鈕會一直顯示;橫屏時頂部返回按鈕隨控制面板的顯示狀態
- 手勢操作
- 屏幕左側上下滑動調節亮度
- 屏幕右側上下滑動調節音量
- 屏幕底測左右滑動調節進度 </ul> </li>
-
鎖屏
- 豎屏不提供鎖屏按鈕,橫屏全屏時顯示
- 鎖屏時隱藏控制面板除鎖屏按鈕外其他所有控件
- 鎖屏時,返回鍵不做任何處理
- 鎖屏時,屏蔽手勢處理
- 鎖屏按鈕屬于控制面板一部分,所以顯示、隱藏、延遲自動消失邏輯隨面板 </ul> </li>
-
error提示和重試功能
- 錯誤時會在視頻上方添加一層包含錯誤信息的蒙版,還有一個重試按鈕。有多個錯誤類型,如下
- 視頻數據錯誤。包含視頻地址、標題等的javabean為空時出現。點擊重試重新請求業務代碼
- 視頻資源播放錯誤。視頻地址未加載成功。點擊重試進行視頻restart操作
- 非wifi網絡錯誤。手機流量下嘗試播放視頻,提示失敗。點擊按鈕允許流量繼續播放
- 無網絡錯誤。手機未聯網時提示錯誤。點擊重試時根據當前網絡狀態進行錯誤提示或重新加載視頻 </ul> </li>
-
網絡處理
- 切換到手機流量或無網絡時,作為上述error情況中最后兩條一樣邏輯處理
- 手機流量的播放,在一次播放過程中,如果允許過一次則后續不再提示錯誤
- BDVideoView中會注冊一個網絡變化監聽廣播,在網絡變更時進行對應處理 </ul> </li> </ul>
截圖
豎屏狀態
播放中切換到無網絡時提示錯誤
橫屏狀態
手勢滑動控制進度
鎖屏和loading
項目主頁:http://www.baiduhome.net/lib/view/home/1497964675196
進階功能
本文由用戶 MarLlewelly 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!