对于相对较新的计算机,啥是 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() 的好替代品?的主要内容,如果未能解决你的问题,请参考以下文章

如何从不同的类(矩形区域)调用方法

Python Pandas 的累积 OLS

1、 啥是本地站点?啥是文件的绝对路径?啥是文件的本地路径? 2、 如何正确设置网页中元素的路径?

阅读计划

对于Android开发,啥是高级工程师?

在Windows目录系统中,啥是绝对路径和相对路径