Я пытаюсь заменить источник аудио / видео с помощью встроенного Google WebRTC.Я использую последнюю версию модуля 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, которые используют микрофон в качестве CaptureDevice через CMSampleBufferRef.Я обнаружил поток захвата AVAudioSession, но подключиться к нему не приходится.
Состояние последних заметок о выпуске
Bug
8466
Objc interface for peer connection factory does not allow external audio device module to be used.
PeerConnection (iOS)
Похоже, что это состояние любых внешних аудиоустройств (как я хочу сделать)по умолчанию не принимается, поэтому, если я правильно понимаю, я должен изменить библиотеки.
Есть ли ЛЮБОЙ способ, которым я могу легко поменять источник звука?И если нет, то любое руководство о том, где в первую очередь искать изменения библиотек WebRTC, было бы чрезвычайно полезно.