使用Qt播放特定的系统声音

4
我希望我的应用程序能够发出标准的通知声音,即Windows上所谓的“默认蜂鸣声”。我没有看到使用QSound引用系统声音的方法。没有分配声音的QSound实例过去可以播放这个声音,但在Qt 5中已经修复了。有什么办法吗?
如果解决方案只适用于Windows也可以,但我希望它可以在任何支持的操作系统上编译,并且不想使用#ifdef和Win API。
1个回答

1

使用 Phonon (http://qt-project.org/doc/qt-4.8/phonon-overview.html),一个 Qt 库,它能够播放声音/视频...

对于文件路径,应该使用 Windows 目录的环境变量,然后硬编码声音文件路径的结尾

但是:我认为这可能不是一个好主意,因为系统声音可以个性化... 要获取个性化声音的路径,需要读取 Windows 注册表...

编辑:您可以使用 QSettings 类来读取 Windows 注册表。例如:

QSettings settings("HKEY_CURRENT_USER\\AppEvents\\Schemes\Apps\\.Defaults\\..TODO..", QSettings::NativeFormat);

尝试阅读两遍,稍微帮助一下:阅读“回放”部分,甚至有一个示例。 - benjarobin
为什么不直接编写声音文件的路径?请参见编辑后的答案。 - benjarobin
现在你的答案已经完整了,但我想知道是否有更好的方法,一种跨平台的方法。你的解决方案甚至不能考虑当前的声音主题。 - Violet Giraffe
编辑了我的答案,提供了实现的想法...但是这不会很容易/快速实现。 - benjarobin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接