當(dāng)提起音視頻開發(fā)虫碉,很多人潛意識(shí)認(rèn)為這是一項(xiàng)很有難度和挑戰(zhàn)的工作,需要投入較多時(shí)間才能入門~~
這句話說對了一半P匕稹敦捧!音視頻目前是入門簡單须板,成神難!
隨著音視頻開源技術(shù)發(fā)展兢卵,流媒體傳輸习瑰、音視頻處理和播放、編解碼秽荤、實(shí)時(shí)通信等技術(shù)難點(diǎn)已經(jīng)被封裝起來甜奄,成為一個(gè)個(gè)簡單易用工具庫,只需要簡單了解一些音視頻的知識(shí)和開源庫API窃款,便可以進(jìn)行音視頻應(yīng)用開發(fā)课兄。
在快速進(jìn)入開發(fā)工作后,再結(jié)合實(shí)際業(yè)務(wù)和代碼深入理解音視頻知識(shí)晨继,事半功倍烟阐,未來可期!!
先快速入門開發(fā),再學(xué)習(xí)思考N裳铩蜒茄!
音視頻客戶端開發(fā),最簡單的流程一般如下:
通過網(wǎng)絡(luò)API獲取音視頻資源列表餐屎,列表item會(huì)包含音視頻資源地址或者ID(提供ID的一般是資源方怕資源地址泄露檀葛,會(huì)提供專門的播放器,播放器會(huì)根據(jù)ID找到這個(gè)地址)腹缩;
引入一個(gè)播放器庫屿聋,初始化播放器,如果是視頻播放還需要先定義好承載視頻畫面的View(SurfaceView等)庆聘,然后使用API將該View和播放器關(guān)聯(lián)起來胜臊;
將第一步獲取的資源地址添加到播放器實(shí)例中勺卢,就可以開始播放了伙判;
定制各種view,將view的各種事件和播放器控制API以及數(shù)據(jù)源關(guān)聯(lián)起來黑忱,就可以實(shí)現(xiàn)暫停宴抚、播放、上下首甫煞,同時(shí)監(jiān)聽播放器回調(diào)的各種事件(比如進(jìn)度更新事件菇曲,播放錯(cuò)誤事件)來完成頁面的UI更新。
做完這些抚吠,視頻播放起來了常潮,那基本的信心就有了!
但遇到疑難雜癥楷力,如何分析喊式,如何界定屬于哪個(gè)模塊孵户、哪一方的問題,就需要繼續(xù)學(xué)習(xí)音視頻的播放流程和技術(shù)架構(gòu)岔留。
學(xué)完這些夏哭,當(dāng)遇到問題,就能快速定位出是誰的問題献联,去哪里找答案竖配,推動(dòng)誰去解決;也會(huì)知道當(dāng)前方案的技術(shù)邊界在哪里里逆,什么時(shí)候該仔細(xì)研究进胯,什么時(shí)候該從產(chǎn)品或者體驗(yàn)上規(guī)避,這時(shí)候的你擁有了超越你技術(shù)范圍的解決問題能力原押。
視頻播放流程可以看《視頻顯示原理整體介紹》龄减,音頻播放流程差不多,待補(bǔ)充
從客戶端視角來看音視頻架構(gòu)如下:
好了班眯,暫時(shí)這樣希停,有問題,評論區(qū)交流討論~