我正在开发一个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;
}
答案 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;
}
快乐编码..
然后任何查询告诉我。