webRTC c ++中有针对自定义音频源的功能吗?

时间:2019-01-15 16:52:06

标签: c++ webrtc

我正在使用android应用本机代码,并且正在使用一些音频文件和音频处理。我需要将音频数据(原始音频帧)发送到webRTC。但是我找不到webRTC的任何API来添加自定义音频源(不是像mic这样的默认音频源)。

我了解我需要添加AudioTrackInterface,为此,我需要添加AudioSourceInterface。

1 个答案:

答案 0 :(得分:1)

此方法对于WebRTC版本66实际。它不是那么简单,也许还不清楚,但是它确实有效。我试图解释主要思想:

我继承了webrtc::AudioDeviceModule并重写了一些方法来模拟“虚拟音频设备”以进行虚拟播放和录制。在通话中,我只是调用了经过一些修改的标准AudioDeviceModule基本方法:

  

int16_t PlayoutDevices() =>调用基本方法,但返回基本+ 1

     

int16_t RecordingDevices() =>返回基数+ 1

     

int32_t PlayoutDeviceName =>返回我的虚拟设备名称和GUID

     

int32_t RecordingDeviceName =>返回我的虚拟设备名称和GUID

     

void SendFrameP =>返回我的虚拟设备音频数据

     

void ReceiveFrameP =>使用我的虚拟设备接收的音频数据

     

etc方法=>仅查看webrtc::AudioDeviceModule的实现。

然后,您可以使用自己的AudioDeviceModule作为webrtc::CreatePeerConnectionFactory函数的参数,并提供音频数据作为记录设备并接收数据作为播放设备。