Go言語で音を鳴らす2
「Go言語で音を鳴らす1」の方でではできなかったので,続編としてこちらで進めていく.
(解決方法が見つかってそっちでもできるようになっているかもしれない)
ひとまず,他の方法で代替できないか探す.
このサイトも同じことをしているが,`os.Open()`の引数の持っていき方を実行時の引数(os.Args[1])に変えただけで同じエラーが出されてしまう.
完全にやり方を変えてみよう.
調べてみると,C言語には音を鳴らすことができるような関数が色々用意されているように見える.例えば
*Windows.hを使っているのでMacだとNGの様子.
共有ライブラリを用いてこれらのC言語の関数をGo言語から使おうと思う.
これのp.293〜p.295の「15.7 C言語との連携」からこうしようと決めた.やっていことは難しくないのでこのためだけにこの本を買う必要はないだろう.
共有ライブラリの作り方はここに書いてある.
実際に書いていこう.
ただし,もう少しだけ調べてみたらC言語だけで音を出すのはできないようで,先ほどのやり方のようにwindows APIを用いるのが一般的なようだ.しかし,自分はMac OSでやっていきたいと考えている.なのでalsaなるものを使ってみようと考えている.
https://gist.github.com/munron/a330a8cfb674324ca5c1
この記事が気に入ったらサポートをしてみませんか?