如何检测设备(iPhone/iPad)中是否有可用的麦克风 - 目标C.

 相思和怀恋_811_372 发布于 2023-01-19 14:17

在我的iOS应用程序中,我想显示一个Alert,如果Mic is not available in the device.

我怎么检查这个?

我试过这个 -

 -(void)checkMic
 {
  UInt32 sessionCategory = kAudioSessionCategory_RecordAudio;
   OSStatus status = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory);  //..always seems to return OK..
   status = AudioSessionSetActive (true);
   if(status)
   {
      //mic is not available
    }
  }

但是此代码显示错误消息 - 已弃用.

1 个回答
  • AudioSessionSetPropertyAudioSessionGetProperty被弃用的iOS 7.使用的AVAudioSession替代.

    您可以使用其availableInputs属性获取可用内容列表并通过它们进行迭代,以找到一个看起来像麦克风的内容,如下所示:

    NSArray *availableInputs = [[AVAudioSession sharedInstance] availableInputs];
    BOOL micPresent = false;
    for (AVAudioSessionPortDescription *port in availableInputs)
    {
        if ([port.portType isEqualToString:AVAudioSessionPortBuiltInMic] ||
            [port.portType isEqualToString:AVAudioSessionPortHeadsetMic])
        {
            micPresent = true;
        }
    }
    
    if (micPresent)
    {
        // Do something cool
    }
    else
    {
        // No mic present - show alert
    }
    

    或者,如果您只想要任何输入,并且不关心它是麦克风还是线路输入,您可以这样做:

    if ([[AVAudioSession sharedInstance] inputAvailable];
    {
        // Do something cool
    }
    else
    {
        // No input present - show alert
    }
    

    2023-01-19 14:21 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有