对于相对较新的计算机,啥是 ol' C++ Beep() 的好替代品?
Posted
技术标签:
【中文标题】对于相对较新的计算机,啥是 ol\' C++ Beep() 的好替代品?【英文标题】:What is a good alternative to the ol' C++ Beep() for a relatively new computer?对于相对较新的计算机,什么是 ol' C++ Beep() 的好替代品? 【发布时间】:2019-07-16 11:39:55 【问题描述】:我正在尝试写一个非常简单的乐谱,但一开始我只是想在控制台中测试一下。我知道Beep()
方法,但我的电脑没有那种类型的扬声器,所以Beep()
不起作用。有其他选择吗?
正如我所说,我的电脑没有Beep()
可以运行的扬声器。我有一台戴尔 Inspiron 灵越 3521 笔记本电脑。
非常感谢答案和 cmets!
【问题讨论】:
This question 列出了一些替代方案。否则pick your favourite library 并播放声音文件。 【参考方案1】:由于您的目标是/想要编写一个完整的声音应用程序,所以 Beep() 是无用的。您必须投资于较低级别的 APIS。
Multimedia API CoreAudioAPI。 ASIO SDK(专业)【讨论】:
@nada 他提到了Beep()
,这意味着他想要Windows。 ASIO SDK 也适用于 OSX。【参考方案2】:
另一种方法是 MIDI 输出。
这里有一个简单的例子,一个 C++ 控制台应用程序,它播放一系列音符:https://www.daniweb.com/programming/software-development/code/216360/play-a-midi-voice-dev-c-console-program
与专业的VST乐器或用它们制作的MP3相比,音质不是很好,但很容易弹奏音符,可能足以满足您的目的。
这里是list of available voices,***上的数字与您需要传递给示例中的声音函数的数字相比有 +1 的偏移量,即为 Acoustic Grand Piano 传递 0。
【讨论】:
以上是关于对于相对较新的计算机,啥是 ol' C++ Beep() 的好替代品?的主要内容,如果未能解决你的问题,请参考以下文章