如何为iOS模拟器选择输入设备?

时间:2014-01-24 18:07:40

标签: ios ios-simulator core-audio

在Mac上,我知道如何查询和选择输入设备 首次查询设备数量:

AudioDeviceID deviceList[ nDevices ];
UInt32 dataSize = sizeof( AudioDeviceID ) * nDevices;
AudioObjectPropertyAddress property = { kAudioHardwarePropertyDevices,
    kAudioObjectPropertyScopeGlobal,
    kAudioObjectPropertyElementMaster };
OSStatus result = AudioObjectGetPropertyData( kAudioObjectSystemObject, &property, 0, NULL, &dataSize, (void *) &deviceList );

然后遍历设备数量并查询以查看其中是否有输入设备:

AudioDeviceID id = deviceList[d];
property.mSelector = kAudioDevicePropertyStreamConfiguration;
property.mScope = kAudioDevicePropertyScopeInput;
dataSize = 0;
result = AudioObjectGetPropertyDataSize( id, &property, 0, NULL, &dataSize );

最终获得更多设备信息,如制造商:

CFStringRef cfName;
dataSize = sizeof( CFStringRef );
property.mSelector = kAudioObjectPropertyManufacturer;
result = AudioObjectGetPropertyData( id, &property, 0, NULL, &dataSize, &cfName );

这些查询都没有使用iOS模拟器(Xcode5,iOS7 SDK)编译,我似乎无法在iOS SDK docset中找到iOS模拟器(本质上是OS X)的等效功能。

我们是否需要遵循另一个程序或一组API? 如果是这样,我在哪里可以找到说明?

谢谢!

1 个答案:

答案 0 :(得分:0)

在iOS(7及更高版本)中,AVAudioSession API用于枚举和选择音频端点。 iOS模拟器音频端点可以通过模拟器抽象层连接或不连接多个Mac音频端点。