В примечаниях к выпуску WebRT C M80 они заявляют, что собираются отказаться от мобильных библиотек.
Чтобы быть в курсе последних исправлений и функций для нативного мобильные библиотеки (iOS и Android), нам нужно собрать из источника .
После того, как я построил пример приложения AppRTCMobile с использованием WebRTC.framework
, построенного из источника, я сделал несколько Изменения и проверки я смог отключить звуковую дорожку по требованию.
В ARDAppClient.h
Я добавляю ссылку указателя strong для удаленного RTCMediaStream
и заголовок метода для переключения Отключение потока:
@property(nonatomic, strong) RTCMediaStream *remoteAudioStream;
// ...
- (void)setRemoteAudioEnabled:(BOOL)enabled;
В ARDAppClient.m
в разделе RTCPeerConnectionDelegate
я слушаю делегат didAddStream
и сохраняю ссылку на удаленный поток:
- (void)peerConnection:(RTCPeerConnection *)peerConnection
didAddStream:(RTCMediaStream *)stream {
RTCLog(@"Stream with %lu video tracks and %lu audio tracks was added.",
(unsigned long)stream.videoTracks.count,
(unsigned long)stream.audioTracks.count);
_remoteAudioStream = stream;
}
В ARDAppClient.m
Я также добавляю функцию для отключения / включения звука потока, к которому у нас теперь есть ссылка:
- (void)setRemoteAudioEnabled:(BOOL)enabled {
if (_state == kARDAppClientStateDisconnected) {
return;
}
RTCLog(@"Setting remote stream to be %s", enabled ? "Enabled" : "Not Enabled");
RTCLog(@"Number of remote audio tracks = %lu", (unsigned long)_remoteAudioStream.audioTracks.count);
if (_remoteAudioStream.audioTracks.count == 0) {
RTCLog(@"ERROR no audio tracks to disable!");
return;
}
_remoteAudioTrack = _remoteAudioStream.audioTracks[0];
[_remoteAudioTrack setIsEnabled:enabled];
}
Наконец, в ARDVideoCallViewController.m
я отменяю кнопку переключателя камеры, чтобы переключать звук на удаленную звуковую дорожку :
- (void)videoCallViewDidSwitchCamera:(ARDVideoCallView *)view {
// [_captureController switchCamera];
self.audioEnabled = !self.audioEnabled;
[_client setRemoteAudioEnabled:self.audioEnabled];
}