Android中下載音視訊檔案
阿新 • • 發佈:2019-01-05
粗略來講,關於下載,簡單的很,無非是得到檔案的源地址,得到檔案流,然後再本地SD卡或者機身記憶體建立一個空File,然後把流中的內容放到檔案中。但實際做起來,實在是麻煩+頭疼的東西。 我的思路,我們需要以下幾個基本的類: 1、一個介面來展示進度--activity/fragment(如果需求需要,notification也是需要的)--activity 2、一個在後臺跑著的,實際上起管理這些下載任務的service--downloadService 3、一個下載Thread,實際上下載內容的執行緒類--downloadTask 4、SQLite資料庫 下面我簡單的分個類,如果說一個下載Thread就是一個下載任務的話,那我就把一個下載任務中承擔多段視訊的下載和單個視訊的下載分別列為兩類,這裡有人可能會說,什麼情況下會在一個下載下載thread中下載多段視訊,是在下載m3u8的時候,那這時候有人又說了,為什麼不開啟多個下載Thread去下載多段的視訊呢,我是這麼考慮的,因為一個m3u8檔案中有成百上千段.ts檔案(這真不是誇大,我曾經下載過一段視訊,一個小時多吧,切了1300多段,還是那個評論,巧(sang)奪(xin)天(bing)工(kuang)),出於這樣的考慮,需要在一個下載Thread中這樣下載一個m3u8,多段.ts(我當時是這麼實現的,但是後來一想,可以用多執行緒的方法,類似於斷點續傳的方式,給多個執行緒分發下載的範圍,貌似也是走的通的,不知道有沒有做過的大神)。 那我們就分開來細說,先說下載多段視訊的,經驗之談,先實現比較複雜的情況,再去實現簡單的情況,因為一般來說簡單的都可以複用複雜的邏輯,反過來卻不行。 一、多段視訊的下載--也就是下載m3u8: