golang声音播放的初探 - Go语言中文社区

golang声音播放的初探


起因

公司需要实现一个定期抓取分销系统数据并以声音播放的方式通知的pc端程序,本人对golang非常感兴趣,于是打算用golang来实现。


探索

  1. 方案一 B站视频
    1.1 方案说明:
    使用otominmp3 这个库来实现播放声音的功能。
    1.2 方案的不足
    当启动任务,每秒去播放声音的时候,时间一长就提示错误。于是,对声音播放不懂的我,到github提交了问题,目前没有解决方法。本人只好继续寻找其他的库,百度、谷歌啥的,发现了portaudio这个库(本人是菜鸟,对操作系统底层的api不懂,也不理解混音啥的算法,只能寻找其他的可代替的库)
  1. 方案二 B站视频
    2.1 方案说明:
    使用portaudiominmp3 这个库来实现播放声音的功能。
    2.2 方案的不足
    portaudio 经过测试不会出现oto库的问题,可以使用。但是,如果播放一段文件大小为7M左右的mp3文件,发现内存有一百多M。虽说,消息通知的语音都是5k左右的短语音,但是作为有强迫症的我,还是不满意。内存大的原因是 minmp3 这个库,解析mp3后,文件是放在内存里面的。而我发现portaudio这个库的示例代码里面有一个go-mpg123解析声音的库。

  2. 方案三 B站视频
    3.1 方案说明:
    使用portaudiogo-mpg123 这个库来实现播放声音的功能。
    3.2 方案不足
    使用的portaudio和mpg123已经完美的解决了公司的需求。但是 这两个库都是使用cgo,所以在wins环境上开发需要好搭建环境。


结束语

1、golang语言非常简单高效。
2、有问题,大家可以百度,谷歌,到社区提问。
3、如果您想支持作者,可以到B站上,给作者点个赞,关注作者。

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/9f5989d30866
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-09 22:24:31
  • 阅读 ( 877 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢