天天看點

WebRtc AudioRtpSender

AudioRtpSender 是連接配接WebRtc Session 和 AudioTrack的紐帶. 如前文所言, AudioTrack 封裝了AudioSource, 但是WebRTC Session尚需要AudioRtpSender 來擷取資料.

在講述AudioRtpSender之前, 先來看這個類LocalAudioSinkAdapter

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

類LocalAudioSinkAdapter, 它實質上是AudioTrack Sink, AudioTrack的Sink 其實是AudioSource Sink, 是以是可以接收來自Audio Srouce 的資料的. 然後, LocalAudioSinkAdaptor 又把自己僞裝成為AudioSource, 它對于WebRtc Session來說 是一個AudioSource, 把來自真正的AudioSource的資料傳遞給WebRtc Session.

來看AudioRtpSender的構造函數

構造AudioRtpSender的時候 就把LocalAudioSourceAdaptor 交給AudioTrack, 作為它的Sink. 然後看這段代碼:

在SetAudioSend 的時候, 把LocalAudioSourceAdaptor 交給了provider_, 注意, 這裡的provider_, 就是WebRtc Session. 用這種方式完成了Source 到 Session 資料通道的建立。

上一篇: WebRTC學習
下一篇: WebRTC直播