У меня есть код разрешения обнаружения для первого микрофона, а затем распознавание речи для открытия нового представления. Но приведенный ниже код создал ошибку типа «Это приложение модифицирует механизм автомакета из фонового потока после того, как доступ к механизму был получен из основного потока. Это может привести к повреждению механизма и странным сбоям».
Может ли кто-нибудь иметь какие-либо идеи?
if (@available(iOS 10.0, *)) {
[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
if (granted) {
// [self detechUserSpeechPermission];
// [self configureSpeechToTextView];
[SFSpeechRecognizer requestAuthorization:^(SFSpeechRecognizerAuthorizationStatus status) {
switch (status) {
case SFSpeechRecognizerAuthorizationStatusAuthorized:
[self configureSpeechToTextView];
break;
case SFSpeechRecognizerAuthorizationStatusDenied:
[self warnUserForSpeechPermission];
break;
case SFSpeechRecognizerAuthorizationStatusNotDetermined:
[self warnUserForSpeechPermission];
break;
case SFSpeechRecognizerAuthorizationStatusRestricted:
[self warnUserForSpeechPermission];
break;
default: break;
} }];
}
else {
[self warnUserForMicrophonePermission];
}
}];
} else {
NSLog(@"low ios version");
}