在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? 如果是这样,我在哪里可以找到说明?
谢谢!
答案 0 :(得分:0)
在iOS(7及更高版本)中,AVAudioSession API用于枚举和选择音频端点。 iOS模拟器音频端点可以通过模拟器抽象层连接或不连接多个Mac音频端点。