gpt4 book ai didi

swift - 在 iOS 11 中请求使用 iPhone 麦克风的权限时应用程序崩溃

转载 作者:行者123 更新时间:2023-11-30 12:05:21 29 4
gpt4 key购买 nike

当我尝试使用以下代码请求使用 iPhone 麦克风的权限时,我的应用崩溃了:

var permissionGranted = false
switch AVAudioSession.sharedInstance().recordPermission() {
case AVAudioSessionRecordPermission.granted:
setupRecorder()
permissionGranted = true
case AVAudioSessionRecordPermission.denied:
permissionGranted = false
case AVAudioSessionRecordPermission.undetermined:
AVAudioSession.sharedInstance().requestRecordPermission {
[weak self] granted in
if granted {
self?.setupRecorder()
}
}
default:
permissionGranted = false
break
}

我还使用字符串将 NSMicrophoneUsageDescription 添加到应用程序的 Info.plist 中。当我运行应用程序时,它崩溃并且 Xcode 打印一条错误消息,指出我需要将 NSMicrophoneUsageDescription 添加到 plist。

最佳答案

尝试使用下面的函数

 struct Manager {
static var recordingSession: AVAudioSession!
static var micAuthorised = Bool()
}

func CheckForPermission()
{
Manager.recordingSession = AVAudioSession.sharedInstance()
do
{
try Manager.recordingSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .defaultToSpeaker)
// try Manager.recordingSession.setPreferredSampleRate(16000)
// try Manager.recordingSession.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
// try Manager.recordingSession.setActive(true)
Manager.recordingSession.requestRecordPermission({ (allowed) in
if allowed
{
Manager.micAuthorised = true
print("Mic Authorised")
}
else
{
Manager.micAuthorised = false
print("Mic not Authorised")
}
})
}
catch
{
print("Failed to set Category", error.localizedDescription)
}
}

关于swift - 在 iOS 11 中请求使用 iPhone 麦克风的权限时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46740224/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com