小编mbf*_*f82的帖子

输出设备的类型(耳机等)

出于用户界面的原因,我想知道输出设备是什么类型的设备。例如,如果音频默认通过耳机播放,我需要显示耳机图标。

为了获取此信息,我正在使用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)

macos cocoa objective-c

4
推荐指数
1
解决办法
1704
查看次数

标签 统计

cocoa ×1

macos ×1

objective-c ×1