代码之家  ›  专栏  ›  技术社区  ›  Jayprakash Dubey

允许访问iOS设备iOS的麦克风[副本]

  •  -2
  • Jayprakash Dubey  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我想要 允许访问iOS设备的麦克风。 该项目在AngularJS1中,Android团队编写了访问麦克风的本机代码,效果非常好。以下是Android的本机代码

    Screenshot 1

    Screenshot 2

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

    3 回复  |  直到 6 年前
        1
  •  1
  •   Chankya Hirapra    6 年前

    enter image description here 首先,在info.plist中添加“隐私-麦克风使用说明”属性。 添加以下代码=>

    FOW斯威夫特=>

    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
        })
    }
    

    对于目标-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;
    }
    

    }

    如果你还是做不到,请告诉我。

        2
  •  1
  •   amisha.beladiya    6 年前

    对于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
    })
    }
    
        3
  •  1
  •   mag_zbc    6 年前

    您不需要明确请求使用麦克风的许可。当您第一次尝试使用音频输入时,应用程序将自动执行此操作。先决条件是 NSMicrophoneUsageDescription 在你的 info.plist ,否则应用程序将崩溃。

    或者,您可以提前致电 requestRecordPermission 方法 AVAudioSession 但这是不必要的,根据 Human Interface Guidelines 只有当你的应用程序明确需要个人数据时,你才应该要求使用它。