-2

我想要访问 iOS 设备的麦克风的权限。项目在 Angular JS 1 中,android 团队编写了本地代码来访问麦克风,效果很好。以下是Android的本机代码

截图 1

截图 2

iOS 的等效代码是什么?任何帮助都感激不尽!

4

3 回答 3

4

在此处输入图像描述首先在 info.plist 中添加“隐私 - 麦克风使用说明”属性。比添加以下代码==>

迅速 =>

import AVFoundation

switch AVAudioSession.sharedInstance().recordPermission() {
case AVAudioSessionRecordPermission.granted:
    print("Permission granted")
case AVAudioSessionRecordPermission.denied:
    print("Pemission denied")
case AVAudioSessionRecordPermission.undetermined:
    print("Request permission here")
    AVAudioSession.sharedInstance().requestRecordPermission({ (granted) in
        // Handle granted
    })
}

对于 Objective-C ==>

#include <AVFoundation/AVFoundation.h>

-(void)askForMicrophonePermission {
switch ([[AVAudioSession sharedInstance] recordPermission]) {
    case AVAudioSessionRecordPermissionGranted:
        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
        [[AVAudioSession sharedInstance]requestRecordPermission:^(BOOL granted) {
            // Check for granted
        }];
        break;
    default:
        break;
}

}

如果你仍然做不到,请告诉我。

于 2018-07-19T09:29:01.413 回答
3

对于 ios,您必须在 info.plist 文件中设置权限

 <key>NSMicrophoneUsageDescription</key>
 <string>${PRODUCT_NAME} always microphone use</string>

添加此权限后,在代码文件中检查麦克风的当前状态

switch AVAudioSession.sharedInstance().recordPermission() {
case AVAudioSessionRecordPermission.granted:
print("Permission granted")
case AVAudioSessionRecordPermission.denied:
print("Pemission denied")
case AVAudioSessionRecordPermission.undetermined:
print("Request permission here")
AVAudioSession.sharedInstance().requestRecordPermission({ (granted) in
    // Handle granted
})
}
于 2018-07-19T09:30:50.707 回答
2

您无需明确请求使用麦克风的权限。当您第一次尝试使用音频输入时,该应用程序会自动执行此操作。前提条件是你有NSMicrophoneUsageDescription你的info.plist,否则应用程序会崩溃。

requestRecordPermission或者,您可以通过调用of 方法提前请求许可AVAudioSession,但这不是必需的,并且根据人机界面指南,您应该仅在您的应用程序明确需要时请求使用个人数据。

于 2018-07-19T09:34:24.950 回答