TSINGSEE青犀視頻團隊開發webrtc的很多問題,我們都在之前的博文中寫過了,做webrtc的開發,主要是想爲我們的視頻平臺提供一個更優的研發方案,在不久的將來,webrtc將會與TSINGSEE青犀視頻平臺有更加緊密的結合。
Webrtc是一個很大的工程,包括視頻和音頻,到現在TSINGSEE青犀視頻需要開發Webrtc實現本地錄音,並在瀏覽器使用video標籤播放音頻,爲後期的產品研發做準備。
通過之前的研究,我們已經實現了webrtc的視頻推流,即把獲取到的圖像通過OnFrame的函數來實現一幀一幀的圖像;那麼我們有可能認爲,應該也有一個函數來讓webrtc實現音頻推流。
但實際上webrtc音頻流沒有OnFrame函數實現一幀一幀推給瀏覽器video標籤播放,因此還是要實現音頻播放,這樣纔有完整的音視頻流。
下面來分享下webrtc推音頻流的實現:
音頻的採集、播放和錄製主要是:AudioDeviceModule類,這個類有很多的虛函數,必須從寫來實現音頻的發送。
(1)AudioDeviceModule類虛函數從寫的代碼比較多(部分代碼)。
(2)音頻還有個MessageHandler類,裏面有個OnMessage函數;
來接收反饋,通過OnMessage反饋信息實現推流。
(3)OnMeaasge反饋接收音頻,裏面函數的實現:
(4)這樣重寫的代碼就完成,下一步就可以開始調用函數了。