不要求获得麦克风许可

时间:2017-10-10 03:23:03

标签: ios webrtc microphone

我正在开发一个WebRTC iOS应用程序,用于从网络摄像头接收视频/音频流。

设备只接收音频和视频流,不收集音频和视频,因此不需要申请麦克风权限。

如何禁止使用麦克风? @kemmitorz

我删除了以下方法,但没有解决问题。

- (RTCRtpSender *)createAudioSender 
{ 
    RTCMediaConstraints *constraints = [self defaultMediaAudioConstraints]; 
    RTCAudioSource *source = [_factory audioSourceWithConstraints:constraints]; 
    RTCAudioTrack *track = [_factory audioTrackWithSource:source 
                                                  trackId:kARDAudioTrackId]; 
    RTCRtpSender *sender = [_peerConnection 
                           senderWithKind:kRTCMediaStreamTrackKindAudio 
                                 streamId:kARDMediaStreamId]; 
    sender.track = track; 
    return sender;
 }

如果我将OfferToReceiveAudio设置为false。设备不会申请麦克风许可。但收到的视频没有声音。

- (RTCMediaConstraints )defaultOfferConstraints 
{ 
    NSDictionary *mandatoryConstraints = @{ 
                                            @"OfferToReceiveAudio" : @"true", 
                                            @"OfferToReceiveVideo" : @"true" 
                                          };
    RTCMediaConstraints constraints = [[RTCMediaConstraints alloc] 
                                 initWithMandatoryConstraints:mandatoryConstraints 
                                          optionalConstraints:nil]; 
    return constraints;
 } 

1 个答案:

答案 0 :(得分:0)

  

录制音频需要用户明确许可。首先   应用程序的音频会话尝试使用音频输入路径的时间   使用启用录制的类别时(请参阅“音频会话”   分类“),系统自动提示用户   允许;或者,您可以调用requestRecordPermission:to   在您选择的时候提示用户

switch ([[AVAudioSession sharedInstance] recordPermission]) {
    case AVAudioSessionRecordPermissionGranted:
        // here call your record method and put this condition in your viewcontroller.
        break;
    case AVAudioSessionRecordPermissionDenied:

        break;
    case AVAudioSessionRecordPermissionUndetermined:
        // This is the initial state before a user has made any choice
        // You can use this spot to request permission here if you want
        break;
    default:
        break;
}

快乐编码..

然后任何查询告诉我。