Golang中获取麦克风输入可以使用第三方库,如`github.com/gordonklaus/portaudio`。下面是一个基本示例代码,演示了如何录制麦克风输入数据: ```go package main import ( "fmt" "log" "os" "os/signal" "github.com/gordonklaus/portaudio" ) func main() { portaudio.Initialize() defer portaudio.Terminate() stream, err := portaudio.OpenDefaultStream(1, 0, 44100, len(bufferSize), processAudio) if err != nil { log.Fatal(err) } err = stream.Start() if err != nil { log.Fatal(err) } fmt.Println("Recording started. Press Ctrl+C to stop.") sig := make(chan os.Signal, 1) signal.Notify(sig, os.Interrupt, os.Kill) <-sig err = stream.Stop() if err != nil { log.Fatal(err) } } func processAudio(in, out []int32) { for i := range in { // 处理麦克风输入数据 // 在这里可以对输入数据进行处理或保存到文件等操作 fmt.Println(in[i]) } } ``` 这段代码使用了`portaudio`库来进行音频处理。首先,它初始化了PortAudio库,然后打开了默认的麦克风输入流。在`processAudio`函数中,你可以对输入的音频数据进行处理。最后,通过捕获Ctrl+C信号来停止录制。 请确保你已经安装了`portaudio`库,并且在代码中正确引用了它。你可以使用以下命令来安装`portaudio`库: ``` go get -u github.com/gordonklaus/portaudio ``` 希望对你有帮助!如有任何问题,请随时提问。