Is there a way to play a system beep on Mac OS using C++ and Xcode? I understand that I need to use a library. Is there a library that works across both the Mac and Windows platforms?
I think you probably want to use NSBeep
NSBeep
Plays the system beep.
#include <AppKit/AppKit.h>
void NSBeep (void);
This seems to work OK for a command line tool:
#include <AppKit/AppKit.h>
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello world !" << endl;
NSBeep();
sleep(1)
return 0;
}
$ g++ -Wall -framework AppKit beep.cpp -o beep
$ ./beep
While this solution worked in 2011, it seems that AppKit is now no longer C++-compatible, so you now need to treat the file as Objective-C++, i.e. rename beep.cpp to beep.mm.
The cross platform way to play a beep is std::cout << "\007";
. I had been trying to play it by passing in a char and then decrementing until 7. That didn't work. Explicitly outputting the code did work though.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With