【问题标题】:react-native-video mutes the microphonereact-native-video 将麦克风静音
【发布时间】:2021-06-27 15:25:39
【问题描述】:

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

【问题讨论】:

    标签: ios xcode react-native webrtc react-native-video


    【解决方案1】:

    感谢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;
    }
    

    此修复仅在 Video 组件中的 ignoreSilentSwitch 设置为 'ignore' 时有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-26
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多