Dan*_* S. 6 iphone core-audio ios
我试图使用以下代码获取iPhone上可用音频输入设备的列表:
CFArrayRef arrayRef;
UInt32 size = sizeof(arrayRef);
OSStatus status = AudioSessionGetProperty(kAudioSessionProperty_InputSources, &size, &arrayRef);
assert(status == noErr);
NSArray *array = (__bridge NSArray *)arrayRef;
Run Code Online (Sandbox Code Playgroud)
调用工作并返回没有错误,但结果数组总是为空,无论我连接到它的硬件是什么.我已经尝试了两种常用的手机耳机,一种来自Apple的原装耳机,一种来自三星和两种USB麦克风(来自Rode的iXY和来自Tascam的iM2X),但阵列始终保持空白.所以我想知道这个属性实际上会列出哪种输入源?它可以用吗?
通过在音频路由上使用侦听器回调,我能够验证是否正确检测到所有4个设备.我还能够使用每个设备录制音频,因此它们都能正常工作.我使用带有iOS 6.1.3(10B329)的iPhone 4S.
小智 2
我对 iPhone 上的音频编程非常陌生,所以我不知道该特定属性有什么用,但如果您想要音频输入列表,我认为这会起作用:
NSArray * ais = [[AVAudioSession sharedInstance] availableInputs];
Run Code Online (Sandbox Code Playgroud)
这提供了 AVAudioSessionPortDescription 对象的数组。
for (id object in ais) {
AVAudioSessionPortDescription * pd = (AVAudioSessionPortDescription*)object;
NSLog(@"%@",pd.portName);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
678 次 |
| 最近记录: |