在go语言中使用PortAudio检测采样率、通道或延迟示例
Go  /  管理员 发布于 10个月前   287
在go语言中实现检测连接到计算机的输入和输出设备的采样率、通道或延迟。
例如麦克风和耳机。如何检测?
解决方案:
我们将使用 Golang-PortAudio 来提取我们想要的设备信息。
https://github.com/gordonklaus/portaudio
例如,
如果要查找麦克风的采样率。
检测到的默认输入设备可以是 Microsoft® LifeCam Cinema(TM,采样率为 44100。
注意:
使用错误的输入采样率将导致输入溢出错误。
示例代码:
package main
import (
"fmt"
"github.com/gordonklaus/portaudio"
)
func main() {
// init PortAudio
portaudio.Initialize()
detectedDevices, err := portaudio.Devices()
if err != nil {
panic(err)
}
fmt.Println("检测到的音频输入和输出设备 : ")
for key, value := range detectedDevices {
fmt.Printf("键 : %v , 值 : %v\n", key, value)
}
fmt.Println("默认音频输入设备 : ")
defaultInput, err := portaudio.DefaultInputDevice()
if err != nil {
panic(err)
}
// see https://godoc.org/github.com/gordonklaus/portaudio#DeviceInfo
// for more details on Channels and Latency
fmt.Printf("%v 采样率为 %v\n", defaultInput.Name, defaultInput.DefaultSampleRate)
fmt.Println("默认音频输出设备 : ")
defaultOutput, err := portaudio.DefaultOutputDevice()
if err != nil {
panic(err)
}
fmt.Printf("%v 采样率为 %v\n", defaultOutput.Name, defaultOutput.DefaultSampleRate)
portaudio.Terminate()
}
输出:
检测到音频输入和输出设备:
键 : 0 , 值 : &{0 Microsoft® LifeCam Cinema(TM 1 0 3.71882ms 10ms 13.877551ms 100ms 44100 0xc420072140}
键 : 1 , 值 : &{1 Line-out (Green Rear) 0 2 10ms 2.333333ms 100ms 11.666666ms 48000 0xc420072140}
键 : 2 , 值 : &{2 耳机(绿色前置) 0 2 10ms 583.333µs 100ms 2.916666ms 192000 0xc420072140}
键 : 3 , 值 : &{3 麦克风(粉红色后部) 2 0 2.333333ms 10ms 11.666666ms 100ms 48000 0xc420072140}
键 : 4 , 值 : &{4 Microphone (Pink Front) 2 0 583.333µs 10ms 2.916666ms 100ms 192000 0xc420072140}
默认音频输入设备 :
Microsoft® LifeCam Cinema(TM) 采样率为 44100
默认音频输出设备 :
耳机(绿色前置)的采样率为 192000
参考文献:
https://godoc.org/github.com/gordonklaus/portaudio#DeviceInfo
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号