이 질문은 정말 기본적인 질문처럼 보일 수 있지만 답변을 찾는 데 어려움을 겪고 있습니다. 내가 아는 한 AVAudioInputNode는 iOS 8부터 사용할 수 있으며 iPhone의 마이크에서 녹음하는 데 사용할 수 있습니다.AVAudioInputNode permission
이전에 AVAudioRecorderSession을 사용하여 권한 및 기타 권한을 요청한 경우 AVAudioRecorderSession을 사용하여 AVAudioEngine을 사용할 때 권한을 요청하고 확인하는 방법을 확인했습니다.
그래서 아래와 같이 어떻게하면 좋을까요? 마이크 개인 정보 보호 메시지가 PLIST에 설정하고 audioEngine.inputNode를 호출하면이 메시지를 제시하는 것 같다 될 수
import AVFoundation
class ViewController: UIViewController {
let audioEngine = AVAudioEngine()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func recordPressed(sender:AnyObject) {
try! startRecording()
}
func startRecording() throws{
let audioSession = AVAudioSession.sharedInstance()
try audioSession.setCategory(AVAudioSessionCategoryRecord)
try audioSession.setMode(AVAudioSessionModeMeasurement)
try audioSession.setActive(true, withOptions: .NotifyOthersOnDeactivation)
guard let inputNode = audioEngine.inputNode else { fatalError("Audio engine has no input node") }
let recordingFormat = inputNode.outputFormatForBus(0)
inputNode.installTapOnBus(0, bufferSize: 1024, format: recordingFormat) { (buffer: AVAudioPCMBuffer, when: AVAudioTime) in
}
audioEngine.prepare()
try audioEngine.start()
}
}
나는 나타났습니다. 그러나 그 허가가 부여되었는지를 어디서 확인해야하는지 아직 알 수 없습니다. 나는 guard let inputNode
줄 끝에서
if (audioSession.recordPermission() == AVAudioSessionRecordPermission.granted){
}else{
print("No permission")
}
직접
를 추가하는 경우이 메시지를 제시하지만, 항상 나에게 심지어 경고에 응답 한 전에 부여되지 않은 해당 권한을 알려줍니다.이것에 대해 이동하는 가장 좋은 방법은 무엇입니까? 먼저 audioSession 메서드를 먼저 사용해야할까요? 상당 부분이 speechrecognizer 주위의 WWDC 코드에서 해제되었습니다. 마이크 권한을 처리하는 곳을 볼 수 없습니다.
실제로 권한을 요청하기 위해 경고를 표시하는 것은 아닙니다. 내가 내가 찾은 예제 여기에 놓치고 것은 내가이 발견 된 문서를 찾고이 권한 단계 확인