我正在尝试使用本机google WebRTC替换A / V源。我正在使用 GoogleWebRTC 的最新容器,并正在使用当前的Google演示项目。
替换视频源非常简单快捷,音频输入不是很多。
像这样在ARDAppClient中设置默认麦克风输入
RTCMediaConstraints *constraints = [self defaultMediaAudioConstraints];
RTCAudioSource *source = [_factory audioSourceWithConstraints:constraints];
RTCAudioTrack *track = [_factory audioTrackWithSource:source
trackId:kARDAudioTrackId];
[_peerConnection addTrack:track streamIds:@[ kARDMediaStreamId ]];
我想用任何想要的东西交换源,我想要获取任何我想要的音频源(一首歌,ReplayKit应用音频),进入需求格式,并挂接到WebRTC管道而无需一团糟。
ReplayKit Broadcast扩展似乎在音频上没有任何吸引力,
- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer
withType:(RPSampleBufferType)sampleBufferType {
switch (sampleBufferType) {
case RPSampleBufferTypeVideo:
[self.capturer didCaptureSampleBuffer:sampleBuffer];
break;
case RPSampleBufferTypeAudioApp:
break;
case RPSampleBufferTypeAudioMic:
break;
default:
break;
}
}
似乎我应该可以在某个地方发送AudioApp或AudioMic CMSamplebuffer ...?
我要避免的是更改WebRTC库并编译自己的静态框架,但是似乎我越来越有可能要这么做。
我无法在WebRTC库中找到任何通过CMSampleBufferRef将麦克风用作CaptureDevice的库。我已经找到了AVAudioSession捕获流程,但是无法进行捕获。
最新发行说明状态
Bug
8466
Objc interface for peer connection factory does not allow external audio device module to be used.
PeerConnection (iOS)
这似乎表明默认情况下不接受任何外部音频设备(如我想做的),因此,如果我正确理解这一点,则必须更改库。
有没有任何种方法可以轻松换出音频源?如果不是这样的话,那么关于更改WebRTC库首先要看的指南将非常有帮助。
答案 0 :(得分:0)
您可以使用专门为解决此问题而创建的 WebRTC 的这个分支:~)
https://github.com/pixiv/webrtc/blob/87.0.4280.142-pixiv0/README.pixiv.en.md