Nit*_*oth 2 hardware microphone objective-c ios ios7
在我的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
}
}
Run Code Online (Sandbox Code Playgroud)
但是此代码显示错误消息 - 已弃用.
Jef*_*lin 11
AudioSessionSetProperty和AudioSessionGetProperty被弃用的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
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想要任何输入,并且不关心它是麦克风还是线路输入,您可以这样做:
if ([[AVAudioSession sharedInstance] inputAvailable];
{
// Do something cool
}
else
{
// No input present - show alert
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2784 次 |
| 最近记录: |