FMX 在 OS X 中更改和静音主音量

FMX Change and mute master volume in OS X

我写了一个 FMX (FireMonkey) 应用程序,我想在 OS X 中更改(增加/减少)和静音/取消静音主音量输出。在 Delphi 或 C++ 中生成器。或者我会通过模拟键盘特定键的按键来实现。

对于 Windows,通过使用 SendInput() 模拟按键非常容易,使用 keybd_event() 甚至更容易。

对我来说 windows 是这样的:

// vkVolumeUp / vkVolumeDown / vkVolumeMute
// VK_VOLUME_UP / VK_VOLUME_DOWN / VK_VOLUME_MUTE
keybd_event(vkVolumeUp, 1, 0, 0);
keybd_event(vkVolumeUp, 1, KEYEVENTF_KEYUP, 0);

但是我无法为 OS X 编译它,因为 IDE 告诉我它不知道这个函数。如果可能的话,直接改变音量的方法会更好。

这可能是一种冗长、低效的方法,但您可以像这样从终端将音量静音:

osascript -e 'set volume with output muted'

然后像这样增加 20 个等级

osascript -e 'set volume output volume ((output volume of (get volume settings)) + 20)'

我想您可以使用 system() 命令来执行这些命令,直到有人告诉您更好的方法。