繁体   English   中英

react-native-video 将麦克风静音

[英]react-native-video mutes the microphone

当在 webRTC 调用期间播放视频时,它会导致本地 stream 到 go 静音而不使轨道静音(音频轨道仍然具有启用的属性设置为 true)。 当 Video 组件的 'muted' 属性设置为 true 或在通话开始前播放视频统计信息时,不会发生这种情况,但在通话期间将视频静音或取消静音后,麦克风仍会断开连接。 视频组件必须访问麦克风。 你知道如何解决吗? 发生在 IOS 14、Xcode 12.2

由于这篇文章,我修复了它。 这是 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;
}

仅当Video组件中的ignoreSilentSwitch设置为'ignore'时,此修复程序才有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM