聊聊视频分段下载的思路
很多優酷網的視頻,都是被分拆成多段的。最近做項目,需要在線播放分段和下載視頻。播放分段視頻,其實就是常說的m3u的概念,把各個分段的地址做成一個播放列表,播放器把所有分段當作一個完整的視頻。在播放過程中,讓用戶感覺不到整個視頻有分段的痕跡。話說干嘛要把視頻拆分成多段呢,網上有文章說是為了節省緩沖時的流量,避免不必要的緩沖。
onStart() onSuccess() onFinish() onProgress在下載過程中,最重要的就是onProgress 方法,它跟蹤下載進度。我們通常看到的下載進度條,下載速度,都是通過這個回調方法把數據展示到界面的。而現在我該如何做呢。例如我有18個文件分段。我在下載第一個文件的時候,我根本不知道總的文件多大。這一點倒好解決,我不可能請求18個分段的文件大小,而是讓服務器從數據庫返回的數據實體時就告訴我總體大小,如果沒有,則粗略按照每個分段為同樣大小來處理進度。在每個分段下載完成后,保存當前下載的總進度。在onProgress中,current指的是當前分段下載的字節數,count是當前分段的總字節數。所以計算進度時,需要加上已經下載完成的分段。每下載完一個分段,計算好下載進度保存下來,在onSuccess方法里,開啟執行下一個分段,到最后一個分段執行完成后,才算整體下載完成。如果在onProgress里將進度準確顯示出來,那下載時用戶時感覺不到在下載多段視頻的。
下載完成后,最好不要要將多段視頻合并,因為文件在合并時容易出現錯亂的現象,應該采取分段播放的思路。
這篇博客寫于兩年了,現在把它從eoe遷移到csdn上來,因為eoe的博客系統已經銷聲匿跡了。
總結
以上是生活随笔為你收集整理的聊聊视频分段下载的思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据分析-矩阵模型:产品定位问题的数据化
- 下一篇: 已知长方体相邻三个面的面积,求长方形的周