視頻彈幕的基本實現的思路總結


參考視頻

http://www.imooc.com/video/12261

1.需要一個顯示彈幕的view的類(里面包括彈道、彈幕狀態的block回調、彈幕的內容、彈道的圖片、開始、結束動畫的方法等),需要一個繼承自NSObject的工具類(包括數據源數組、運行過程中的已顯示彈幕的數據數組,存儲彈幕的數組,開始、結束的方法等),統一管理彈幕。

2.一般需要實現的業務邏輯有:

        1)每個彈幕都有自己的彈道,彈道需要隨機分配。

        2)彈幕從右邊屏幕到左邊屏幕勻速移出的動畫,使用UIView的animation動畫即可實現。一般會有彈幕越長,移動速度越快的需求。

            彈幕移動的距離已知(屏幕的寬,彈幕自身的寬),只需要將每個彈幕的時間設置為一樣的,距離除以時間,即可使每個彈幕移動速度不一樣。

        3)當一個彈幕完全進入屏幕之后,可以在該彈道后面追加彈道,及從數據模型的數組中,取出新一條的數據,創建新的彈道的view.

            注意:這個地方需要使用延遲動畫的方法,如果使用UIView的延遲動畫,后面停止彈幕的時候,取消動畫會出現問題,所以這里需要使用performSelector      delay這個方法,后面停止的時候,調用NSObject 的cancel開頭的一個方法。

        4)當一個彈幕完全移出屏幕之后,需要將該彈幕移除。

        5)停止彈幕 :需要將存有彈幕的數組清空,停止每個彈幕的動畫。

        6)循環播放彈幕:在工具類中寫一個外部接口的方法,當調用這個方法時,將之前保存在數組中的彈幕清空,重新創建彈幕即可。當所有彈幕都移出屏幕時,調用這個方法  

        7)可以在彈幕的前邊添加圓形圖片,用於顯示用戶的頭像。

        8)彈幕的狀態一共分為三種,進入,完全進入,完全移出,可以在彈幕的view類中定義一個枚舉,有三種狀態,根據彈幕不同的狀態,回調給工具類,工具類根據不 同的狀態進行相應的處理。

 

 

 

 

 

 

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM