国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Promise并發(fā)下載m3u8視頻

2023-05-15 22:49 作者:小老虎Tigger  | 我要投稿

由于很多視頻網(wǎng)站是根據(jù)m3u8文件來播放視頻,所以如果要下載視頻,就要下載對應(yīng)m3u8文件,再去根據(jù)m3u8文件解析獲取到所有單個文件的url,然后下載每一個單獨(dú)的文件,再合并。

我們先需要解析一下m3u8文件,獲取所有url

m3u8文件

如果視頻文件比較大,那么獲取到的url數(shù)量可能會有上百個,如果我們每一個請求都是同步順序完成,比較耗費(fèi)時間。一般情況下,都會使用Promise.all來處理,但是Promise.all并不能一直保持固定的請求數(shù),假設(shè)我們有100個請求,在100個請求沒有完成之前,需要一直保持有10個請求在執(zhí)行(不考慮瀏覽器限制),如果每次使用Promise.all發(fā)送10個請求,那么在這10個請求中的其中兩個完成后,并沒有其他請求補(bǔ)充進(jìn)來,這個時候?qū)嶋H上只有8個請求在執(zhí)行。

那么,我們來簡單實(shí)現(xiàn)一個并發(fā)的函數(shù),讓100個請求在完全執(zhí)行完之前,都保持著固定數(shù)量的連接數(shù)量。

首先,我們定義一個函數(shù),接受兩個參數(shù),一個是url列表,一個是最大連接數(shù)。函數(shù)返回一個Promise,所有請求成功,返回所有結(jié)果的result,如果有某個請求失敗,則reject。

核心是在每個請求完成之后繼續(xù)消耗url列表,一直保持設(shè)置的并發(fā)數(shù)量。


Promise并發(fā)下載m3u8視頻的評論 (共 條)

分享到微博請遵守國家法律
平乡县| 呼伦贝尔市| 肥城市| 石泉县| 鲁甸县| 措勤县| 鄂托克前旗| 邵武市| 丰台区| 壶关县| 海城市| 淳安县| 抚松县| 昌图县| 任丘市| 密云县| 曲麻莱县| 周宁县| 长春市| 达拉特旗| 环江| 长顺县| 漯河市| 绥化市| 徐水县| 亚东县| 韶山市| 临江市| 襄城县| 德昌县| 舞阳县| 临洮县| 罗江县| 台安县| 无棣县| 西城区| 根河市| 溆浦县| 历史| 阳新县| 吉安市|