現状
題名通りになります.まずGo言語で音を鳴らすにはどうすれば良いのかを知るために,いくつかサイトを検索してみたのですが,
https://techblog.istyle.co.jp/archives/2102
このサイトでは,キーボードを鍵盤に見立てていて望む形とは違う.
https://news.mynavi.jp/techplus/article/gogogo-18/
このサイトでは,.wavファイルのsin波を生成していて望んだ形に近いのですが,.wavファイルの再生自体は別のプレイヤーか何かで行っていて,違う,のようになりました.
LiveCoding用の言語として活用することを考えているため,実行ごとに.wavファイルを作成されるのはあまりよろしくないのですが,とりあえず音を鳴らしてみることが先決と考え,では,二つ目のリンクで再生した.wavファイルを再生できるコードの書き方はどこかに書いていないかを調べたのですが,次のリンクのようなものを見つけました.
https://qiita.com/usk81/items/8590172a23bb71e21329
ここではmp3でやっていますが,
https://github.com/faiface/beep
を見てみると,wavというのもあるので,少し弄ればwavもできるのではないかと思いこれに触れています.とりあえずmp3で動くことを確かめるために次のサイトの一番上の音源を取り,"sea.mp3"として再生してみようとしています.
https://vsq.co.jp/plus/sound/category_sub/sea/
質問内容
go
1package main 2 3import ( 4 "log" 5 "os" 6 "time" 7 8 "github.com/faiface/beep" 9 "github.com/faiface/beep/mp3" 10 "github.com/faiface/beep/speaker" 11) 12 13func main() { 14 f, err := os.Open("sea.mp3") 15 if err != nil { 16 log.Fatal(err) 17 } 18 st, format, err := mp3.Decode(f) 19 if err != nil { 20 log.Fatal(err) 21 } 22 defer st.Close() 23 24 speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10)) 25 26 done := make(chan bool) 27 speaker.Play(beep.Seq(st, beep.Callback(func() { 28 done <- true 29 }))) 30 <-done 31}
コードを上のようにし,go run main.go
で実行してみたところ,次のような結果が返ってきました.これは一体どのように対処すれば良いのでしょうか.
% go run main.go # github.com/hajimehoshi/oto In file included from driver_macos.m:17: In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:10: In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:12: /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSBundle.h:91:143: error: function does not return NSString /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:103:48: note: expanded from macro 'NS_FORMAT_ARGUMENT'
やってみたこと
error
となっている文を検索して上3つに表示される
https://github.com/icerockdev/moko-resources/issues/247
のようなサイトを見たのですが対処法が掴めず,他に見ようとしてもswiftのような別の言語についてであるようなサイトが見つかりました.
% go get github.com/faiface/beep/speaker % go get github.com/faiface/beep/mp3 % go get github.com/faiface/beep
は実行してあります.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/30 11:37