Android 一款簡單的視頻的播放器

轉自:這位大神

介紹

播放器寫法參考系統VideoView,系統的寫法比較權威很有參考價值
在VideoView基礎上添加了常見的手勢滑動、鎖屏功能等

將系統控件中的播放器部分抽離出來,封裝成了一個單獨的類BDVideoPlayer,可以自行替換成vitamio、ijk等其他播放器
播放器的控制面板、錯誤提示、手勢滑動時顯示的樣式都單獨封裝成View,可按需自己修改

播放器功能封裝成了model,代碼獨立,引用修改都比較方便
Demo中的VideoDetailActivity頁面演示瞭如何使用本播放器

Github地址

https://github.com/boredream/VideoPlayer
歡迎start和follow~


基礎功能

  • 播放視頻
    • 支持本地視頻、網絡視頻
  • 播放、暫停
    • 暫停時,面板的顯示不會有延遲消失效果,恢復播放時纔有
  • SeekTo進度拖動
  • 操作面板顯示、延遲消失
    • 點擊視頻畫面會顯示、隱藏操作面板
    • 顯示後不操作會3秒後自動消失
  • 播放器回調
    • 將系統MediaPlayer所有回調進行統一封裝,回調方法名和參數保持一致,減少學習成本
    • 新增播放器當前狀態回調,具體狀態參考系統MediaPlayer生命週期圖
    • 新增loading狀態回調,規則爲”系統info回調的加載中”、”Preparing狀態”時顯示;”系統info回調的加載結束 “、”IDEL狀態”、”ERROR狀態”、”PREPARED狀態”時隱藏

進階功能

  • 橫豎屏切換
    • 豎屏時,操作面板底部有全屏按鈕,點擊切換到橫屏全屏狀態
    • 橫屏時,隱藏全屏按鈕,點擊返回會變回豎屏狀態
    • 切換全屏時,隱藏statusbar;豎屏時恢復原有狀態
    • 豎屏時,頂部返回按鈕會一直顯示;橫屏時頂部返回按鈕隨控制面板的顯示狀態
  • 手勢操作
    • 屏幕左側上下滑動調節亮度
    • 屏幕右側上下滑動調節音量
    • 屏幕底測左右滑動調節進度
  • 鎖屏

    • 豎屏不提供鎖屏按鈕,橫屏全屏時顯示
    • 鎖屏時隱藏控制面板除鎖屏按鈕外其他所有控件
    • 鎖屏時,返回鍵不做任何處理
    • 鎖屏時,屏蔽手勢處理
    • 鎖屏按鈕屬於控制面板一部分,所以顯示、隱藏、延遲自動消失邏輯隨面板
  • error提示和重試功能

    • 錯誤時會在視頻上方添加一層包含錯誤信息的蒙版,還有一個重試按鈕。有多個錯誤類型,如下
    • 視頻數據錯誤。包含視頻地址、標題等的javabean爲空時出現。點擊重試重新請求業務代碼
    • 視頻資源播放錯誤。視頻地址未加載成功。點擊重試進行視頻restart操作
    • 非wifi網絡錯誤。手機流量下嘗試播放視頻,提示失敗。點擊按鈕允許流量繼續播放
    • 無網絡錯誤。手機未聯網時提示錯誤。點擊重試時根據當前網絡狀態進行錯誤提示或重新加載視頻
  • 網絡處理

    • 切換到手機流量或無網絡時,作爲上述error情況中最後兩條一樣邏輯處理
    • 手機流量的播放,在一次播放過程中,如果允許過一次則後續不再提示錯誤
    • BDVideoView中會註冊一個網絡變化監聽廣播,在網絡變更時進行對應處理

截圖

豎屏狀態

播放中切換到無網絡時提示錯誤

橫屏狀態

手勢滑動控制進度

鎖屏和loading

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章