(1) 方法1 : サウンド再生コマンド
Linux ならpaplay、Mac なら afplay という コマンドがプレインストールされています。
Apple macOS command line: afplay
これを system 関数を使って実行する。
C言語の標準環境で実装できるので、お手軽です。
サウンドファイルもプレインストールされているものを使います。
Linux では
/usr/share/sounds/freedesktop/stereo/
Mac では
/System/Library/Sounds/
サンプルコードを Github に公開した。 https://github.com/ohwada/MAC_cpp_Samples/tree/master/sound
(2) 方法2 : SDL_mixer
クロスプラットフォームのマルチメディアライブラリです。
ライブラリのインストールが必要ですが、
効果音を鳴らすためのプログラムは割と簡単です。
qiita: C/C++でcross-platformでの音楽再生にはSDL_mixerが便利
サンプルコードを github に公開した。 https://github.com/ohwada/MAC_cpp_Samples/tree/master/SDL2_mixer
Mac で oga 形式を使う
Linux では、下記のディレクトリに
多くの効果音ファイルが oga 形式で格納されている。
/usr/share/sounds/freedesktop/stereo/
Mac にて、これらのファイルを利用したい。
ファイルは下記で公開されている。
freedesktop.org: sound-theme-freedesktop
しかし、afplay は oga 形式に対応していない。
そこで、下記のような方法をとる。
(1) 方法1 : paplay
paplay は PulseAudio のライブラリに内包されている。 brew コマンドでインストールする。 なお、mp3 には対応していない。
(2) 方法2 : SDL_mixer
SDL_mixer は、oga, mp3 に対応している。
sdlplay という実行ファイルを作り、下記に置いておくと、
サウンド再生コマンドとして使えて、便利です。
/usr/local/bin
(3) 方法3 : VLC
クロスプラットフォームで動作するメディアプレーヤーです。
oga, mp3 に対応している。
下記からダウンロードする。
https://www.videolan.org/vlc/
または、brew コマンドでインストールする。
(4) 補足: QuickTime アプリ と Music アプリ では再生できなかった
Apple Support: QuickTime Player
oga 形式を wav 形式に変換する
wav 形式ならば、
全ての サウンド再生コマンド と サウンド再生ライブラリ が対応しているので、悩みはなくなる。
(1) 方法1 : sox コマンド
さまざまな形式のオーディオファイルを他の形式に変換できます。
こんな風に使う。
sox -t ogg sample.oga -t wav sample.wav
(2) l方法2 : libogg libvorbis
oga 形式のファイルを扱うための 低レベルAPI のライブラリです。
これを使って変換プログラムを自作する。
単一のファイルの変換ならば、sox コマンドで十分です。
ディレクトリのあるファイルを一括で変換できるようにする。
サンプルコードを github に公開した。 https://github.com/ohwada/MAC_cpp_Samples/tree/master/libvorbis