小程序直播功能開發(fā)過程詳解
在線直播該怎么做?
在線直播的應(yīng)用場景有哪些?
在游戲直播、遠(yuǎn)程授課、以及企業(yè)內(nèi)部的培訓(xùn)分享等場景中,都可能會(huì)用到在線直播功能,直播的應(yīng)用場景可以遍及各行各業(yè)。
比如微信電競是一款游戲直播產(chǎn)品,以小程序?yàn)楫a(chǎn)品呈現(xiàn)方式。
比如在醫(yī)療行業(yè),專家醫(yī)師往往需要全國各地飛進(jìn)行學(xué)術(shù)交流和培訓(xùn),出差本身耽誤了醫(yī)生大量時(shí)間,在線遠(yuǎn)程授課能大大減少這里的時(shí)間耗用。
小程序中的 <live-pusher> 和 <live-player> 兩個(gè)組件 ,都有一個(gè)叫做live ( <live-pusher> 中對(duì)應(yīng) mode 屬性為 SD, HD, FHD)的模式,專門為在線直播而設(shè)計(jì),通過小程序的音視頻接口的live 模式,可以實(shí)現(xiàn)上述應(yīng)用場景。
02在線直播的內(nèi)部原理是什么?
主播端使用 <live-pusher> ,它在小程序的內(nèi)部是一個(gè)推流引擎,它負(fù)責(zé)對(duì)手機(jī)攝像頭和麥克風(fēng)的數(shù)據(jù)進(jìn)行采集和編碼,并通過 url 參數(shù)指定的 rtmp 推流地址上傳到云端。
云端的作用類似信號(hào)放大器,它負(fù)責(zé)將來自主播端的一路音視頻流數(shù)據(jù)進(jìn)行放大,將數(shù)據(jù)實(shí)時(shí)并且無差異的負(fù)責(zé)并擴(kuò)散到全國各地,從而解決主播和觀眾端之間距離太遠(yuǎn)(比如,跨地區(qū)和跨運(yùn)營商)的問題。
觀眾端使用 <live-player> 進(jìn)行播放,它在小程序的內(nèi)部是一個(gè)在線播放器,負(fù)責(zé)從云端實(shí)時(shí)拉取音視頻數(shù)據(jù)并進(jìn)行解碼和渲染。由于云端的放大效應(yīng),每一個(gè)觀眾都能在離自己比較近的云服務(wù)器上拉取到實(shí)時(shí)且流暢的音視頻流。