官术网_书友最值得收藏!

2.1.2 跨平臺

實現音視頻直播客戶端除了要實現上面介紹的7個模塊外,還要考慮跨平臺的問題,只有在各個平臺上都能實現音視頻的互聯互通,才能稱得上是一個合格的音視頻直播客戶端。所以它至少應該支持Windows、Mac、Android以及iOS四個終端,當然如果還能夠支持Linux端和瀏覽器就更好了。

要知道的是,如果不借助WebRTC,想在瀏覽器上實現音視頻實時互通,難度是非常大的,這是自研系統的一大缺陷。除此之外,其他幾個終端的實現倒是相對較容易的事。

增加跨平臺后,音視頻直播客戶端的架構較之前復雜多了,如圖2.3所示。從這張圖中可以看到,要實現跨平臺,難度最大也是最首要的是訪問硬件設備的模塊,如音頻采集模塊、音頻播放模塊、視頻采集模塊以及視頻播放模塊等,它們在架構中的變化是最大的。

圖2.3 跨平臺音視頻直播客戶端架構

以音頻采集為例,在不同的平臺上,采集音頻數據時使用的系統API是不一樣的。PC端使用的是CoreAudio;Mac端使用的系統API也稱為CoreAudio,不過具體的函數名是不同的;Android端使用的是AudioRecord;iOS端使用的是AudioUnit;Linux端使用的是PulseAudio。

總之,每個終端都有各自采集音視頻數據的API。由于不同的系統其API設計的架構不同,所以在使用這些API時,調用的方式和使用的邏輯也千差萬別。因此,在開發這部分模塊時,其工作量是巨大的。

主站蜘蛛池模板: 包头市| 锦屏县| 景谷| 利川市| 鹤峰县| 南汇区| 靖远县| 改则县| 衡阳市| 剑河县| 介休市| 博兴县| 尼玛县| 永仁县| 鄂托克旗| 游戏| 修文县| 宁强县| 曲麻莱县| 长岭县| 饶阳县| 葵青区| 安塞县| 天全县| 抚顺县| 清涧县| 青阳县| 佛教| 城固县| 荣成市| 西吉县| 辽源市| 贵港市| 定西市| 建德市| 花莲县| 交口县| 揭西县| 石泉县| 平阴县| 仁怀市|