【问题标题】:Setting sound output/input设置声音输出/输入
【发布时间】:2011-04-23 22:30:51
【问题描述】:

我一直在网上寻找,但我不知道是否有可能:Cocoa Mac OS X 应用程序可以更改声音输入/输出设备吗?如果有,怎么会?

【问题讨论】:

    标签: objective-c cocoa macos audio


    【解决方案1】:

    Cocoa Mac OS X 应用程序能否更改声音输入/输出设备?

    是的,settingrelevant Audio System Object property

    如果是这样,怎么会?

    可能是因为用户可能希望从应用程序中更改默认输入或输出设备,而不是必须在前后跳转到声音预面板或额外使用声音菜单。

    【讨论】:

    • 我不知道声音 Menu Extra 可以改变输入/输出设备。我该如何启用它?
    • Jailborc:点击时按住Option键。
    • 该死的。知道这真是太棒了。根本不是很容易被发现。应该一直都在……
    • 不幸的是,链接已损坏。 :(
    • @uchuugaka:请提交雷达。
    【解决方案2】:

    我知道这是一篇旧帖子,但这些天我一直在努力寻找一种使用代码更改声音输入/输出设备的方法,我终于找到了方法。万一其他人遇到同样的问题,这就是答案!

    有一个名为 SwitchAudio-OSX (https://code.google.com/p/switchaudio-osx/) 的命令行实用程序允许您从终端切换音频源。它是开源的,你可以在这里找到最新版本:https://github.com/deweller/switchaudio-osx

    无论如何,您可以使用这些行来更改声音输入/输出设备:

    UInt32 propertySize = sizeof(UInt32);
    AudioHardwareSetProperty(kAudioHardwarePropertyDefaultInputDevice, propertySize, &newDeviceID); // To change the input device
    AudioHardwareSetProperty(kAudioHardwarePropertyDefaultOutputDevice, propertySize, &newDeviceID); // To change the output device
    AudioHardwareSetProperty(kAudioHardwarePropertyDefaultSystemOutputDevice, propertySize, &newDeviceID); // To change the system output device
    

    其中newDeviceIDAudioDeviceID 的一个实例,表示您要选择的设备的ID。此外,可以使用以下代码获取所有可用设备的列表:

    AudioDeviceID dev_array[64];
    AudioHardwareGetProperty(kAudioHardwarePropertyDevices, &propertySize, dev_array);
    int numberOfDevices = (propertySize / sizeof(AudioDeviceID));
    

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 2012-06-23
      相关资源
      最近更新 更多