【问题标题】:Permission access to microphone of iOS device ios [duplicate]权限访问iOS设备ios的麦克风[重复]
【发布时间】:2018-12-27 08:32:33
【问题描述】:

我想要对 iOS 设备麦克风的访问权限。 项目在 Angular JS 1 中,并且 android 团队已经编写了本地代码来访问麦克风,它工作得很好。以下是 Android 的原生代码

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

【问题讨论】:

  • 您是在寻找js 代码还是原生iOS?
  • @Ivan :提到问题本身我正在寻找适用于 iOS 的等效代码。
  • 朋友们,为什么要投反对票?

标签: android ios angularjs xcode permissions


【解决方案1】:

首先在 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;
}

}

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

【讨论】:

    【解决方案2】:

    对于 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】:

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

      或者,您可以通过调用AVAudioSessionrequestRecordPermission 方法提前请求许可,但这不是必需的,根据Human Interface Guidelines,您应该仅在您的应用明确需要时请求使用个人数据.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-08
        • 1970-01-01
        相关资源
        最近更新 更多