홈>
저는 간단한 자습서 여기 에서
마이크 액세스를 거부하더라도 시뮬레이터에서 마이크를 실행하면 사용자가 프롬프트에서 허용을 선택하기 전에도 항상 승인 된 경우에 들어가서권한을 인쇄합니다. 마이 위즈 비즈 호출되지 않습니다. 이 문제를 어떻게 해결합니까?
askSpeechPermission
let audioEngine = AVAudioEngine()
let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "en-US"))
let request = SFSpeechAudioBufferRecognitionRequest()
var recognitionTask: SFSpeechRecognitionTask?
override func viewDidLoad() {
super.viewDidLoad()
switch SFSpeechRecognizer.authorizationStatus() {
case .notDetermined:
askSpeechPermission()
print("not determined")
case .authorized:
self.status = .ready
print("authorized")
case .denied, .restricted:
self.status = .unavailable
print("denied or restricted")
}
}
func askSpeechPermission() {
SFSpeechRecognizer.requestAuthorization { status in
OperationQueue.main.addOperation {
switch status {
case .authorized:
self.status = .ready
default:
self.status = .unavailable
}
}
}
}
- 답변 # 1
관련 질문
- ios : ViewController에서 관찰 가능한 단위 테스트 RxSwift
- ios : genstrings -SwiftUI가 버튼에 대해 작동하지 않음
- ios : NS_SWIFT_NAME이 "."와 함께 작동하지 않습니다. (점) 기본 이름
- ios : 스케일 및 알파가있는 UIView 스프링 애니메이션
- iOS에서 스레드로부터 안전하다는 것은 무엇을 의미합니까?
- iOS 14에서 Swift Subviews 수가 작동하지 않습니다.
- ios : 카메라 및 사진 라이브러리를 열기위한 XCTestCase
- ios : 하나의 앱에 두 개의 Google plist를 추가하는 방법이 있습니까?
- ios : SwiftUI로 Google 로그인 추가
- 한 번의 통화에 대해 특정 장치에서만 503 응답 (iOS 앱)
스택 오버플로에 오신 것을 환영합니다!
사용자가 요청을 승인하거나 거부하면 requestAuthorization이 다시 호출 되더라도 다시 표시되지 않습니다. 시뮬레이터에서 앱을 삭제 한 다음 Xcode에서 다시 실행하면 이전 선택 항목이 지워지고 대화 상자가 다시 나타납니다.
게시 한 코드를 실행했는데 예상대로 작동하는 것 같습니다.