func (a *Audio) Start() error { host, err := portaudio.DefaultHostApi() if err != nil { return err } parameters := portaudio.HighLatencyParameters(nil, host.DefaultOutputDevice) stream, err := portaudio.OpenStream(parameters, a.Callback) if err != nil { return err } if err := stream.Start(); err != nil { return err } a.stream = stream return nil }
func main() { portaudio.Initialize() defer portaudio.Terminate() h, err := portaudio.DefaultHostApi() chk(err) stream, err := portaudio.OpenStream(portaudio.HighLatencyParameters(nil, h.DefaultOutputDevice), func(out []int32) { for i := range out { out[i] = int32(rand.Uint32()) } }) chk(err) defer stream.Close() chk(stream.Start()) time.Sleep(time.Second) chk(stream.Stop()) }