出于用户界面的原因,我想知道输出设备是什么类型的设备。例如,如果音频默认通过耳机播放,我需要显示耳机图标。
为了获取此信息,我正在使用AudioObjectGetPropertyData()with kAudioDevicePropertyDataSource。这返回'ispk'用于内部扬声器、'hdpn'耳机等。
如果我使用连接耳机的外部 USB-C 集线器,该代码将不起作用。该函数调用返回错误 2003332927(即'who?')。
我能得到的唯一信息是 UID 是AppleUSBAudioEngine:Burr-Brown from TI:USB audio CODEC:14412000:2,名称是USB audio CODEC,制造商是Burr-Brown from TI。
你知道我是否可以得到更多有用的信息吗?
这是我的测试代码:
static NSString *getDataSourceName(UInt32 dataSource)
{
switch (dataSource)
{
case 'ispk':
return @"internal speaker";
case 'espk':
return @"external speaker";
case 'hdpn':
return @"headphones";
default:
return [NSString stringWithFormat:@"unknown type %d", dataSource];
}
}
static void printDefaultOutputDeviceType()
{
// Get the default output device.
AudioDeviceID deviceID;
UInt32 defaultOutputPropSize …Run Code Online (Sandbox Code Playgroud)