如何解决react-native-video 使麦克风静音
在 webRTC 调用期间播放视频时,它会导致本地流静音而不将轨道静音(音轨仍将启用的道具设置为 true)。当 Video 组件的“静音”道具设置为 true 或在通话开始之前播放视频统计信息时不会发生这种情况,但在通话期间将视频静音或取消静音后,麦克风仍然断开连接。视频组件必须访问麦克风。你知道如何解决吗?发生在 IOS 14、Xcode 12.2
解决方法
感谢这个post,我修复了它。 ios/Video/RTCVideo.m 中的 AVAudioSession
有问题。事实证明,AVFoundation
中的默认设置允许一次使用麦克风或扬声器,因此安装视频组件或执行任何建立 AVAudioSession
的操作都会干扰使用麦克风的其他组件。
我更改了这部分代码:
- (void)setPaused:(BOOL)paused
{
if (paused) {
[_player pause];
[_player setRate:0.0];
} else {
if([_ignoreSilentSwitch isEqualToString:@"ignore"]) {
// [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; OLD
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error:nil]; //NEW
} else if([_ignoreSilentSwitch isEqualToString:@"obey"]) {
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
}
[_player play];
[_player setRate:_rate];
}
_paused = paused;
}
此修复仅在 ignoreSilentSwitch
组件中的 Video
设置为 'ignore'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。