有没有办法在Mac OS上使用C ++和Xcode播放系统蜂鸣声?我明白我需要使用一个库。是否有适用于Mac和Windows平台的库?
答案 0 :(得分:6)
我想您可能想要使用NSBeep。
<强> NSBeep 强>
播放系统蜂鸣声。
#include <AppKit/AppKit.h>
void NSBeep (void);
这似乎适用于命令行工具:
#include <AppKit/AppKit.h>
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello world !" << endl;
NSBeep ();
return 0;
}
$ g++ -Wall -framework AppKit beep.cpp -o beep
$ ./beep
答案 1 :(得分:2)
发出哔哔声的跨平台方式是std::cout << "\007";
。我一直试图通过传递一个字符然后递减直到7来播放它。这不起作用。显然输出代码确实有效。
答案 2 :(得分:0)
这是一种替代方法,可在 2021 年在当前的 macOS (Big Sur) 上使用(与我之前的 NSBeep 解决方案不同,后者现在仅适用于 Objective-C++,而不适用于 vanilla C++)。我反汇编了 NSBeep
,发现它只是使用参数值 0x1000 (AudioServicesPlayAlertSound
) 调用 kSystemSoundID_UserPreferredAlert
。 AudioServicesPlayAlertSound
是 AudioToolbpx 框架的一部分,幸运的是它仍然适用于 C++(与 AppKit 不同)。
#include <AudioToolbox/AudioServices.h>
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello world !" << endl;
AudioServicesPlayAlertSound(kSystemSoundID_UserPreferredAlert);
sleep(1);
return 0;
}
编译运行:
$ g++ -Wall -framework AudioToolbox beep.cpp -o beep
$ ./beep