- WebRTC音視頻實時互動技術:原理、實戰與源碼分析
- 李超編著
- 507字
- 2021-08-06 14:49:29
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時,調用的方式和使用的邏輯也千差萬別。因此,在開發這部分模塊時,其工作量是巨大的。
推薦閱讀
- DBA攻堅指南:左手Oracle,右手MySQL
- 實用防銹油配方與制備200例
- 數據結構習題精解(C語言實現+微課視頻)
- 程序員考試案例梳理、真題透解與強化訓練
- 微信公眾平臺開發:從零基礎到ThinkPHP5高性能框架實踐
- Linux操作系統基礎案例教程
- Java EE 8 Application Development
- Java編程的邏輯
- PLC應用技術(三菱FX2N系列)
- OpenGL Data Visualization Cookbook
- Instant PHP Web Scraping
- Spring MVC+MyBatis開發從入門到項目實踐(超值版)
- Node.js 12實戰
- 從零學Java設計模式
- 編程的原則:改善代碼質量的101個方法