首先,我是Go和低级编程世界的新手,所以忍受我... :)
所以我要做的就是这个; 读取带有libsndfile 绑定的.wav文件,然后使用portaudio播放它.
我找不到任何这方面的例子,显然我缺乏关于指针,流和缓冲区的基本知识来实现这一点.到目前为止,这是我对它的看法,我试图阅读文档和我能够找到的几个例子并将各个部分组合在一起.我想我能够打开文件和流,但我不知道如何连接这两个.
package main
import (
"code.google.com/p/portaudio-go/portaudio"
"fmt"
"github.com/mkb218/gosndfile/sndfile"
"math/rand"
)
func main() {
portaudio.Initialize()
defer portaudio.Terminate()
// Open file with sndfile
var i sndfile.Info
file, fileErr := sndfile.Open("hello.wav", sndfile.Read, &i)
fmt.Println("File: ", file, fileErr)
// Open portaudio stream
h, err := portaudio.DefaultHostApi()
stream, err := portaudio.OpenStream(portaudio.HighLatencyParameters(nil, h.DefaultOutputDevice), func(out []int32) {
for i := range out {
out[i] = int32(rand.Uint32())
}
})
defer stream.Close()
fmt.Println("Stream: ", stream, err)
// Play portaudio stream …Run Code Online (Sandbox Code Playgroud)