wxWidgets 支持哪种格式的 *.wav 文件?

What exact form of *.wav files are supported by wxWidgets?

wxBell() 命令对 Linux (Ubuntu) 没有任何作用,我阅读了使用 wxSound 的建议。 现在我在这里找到了 'wrong-answer'-sound 的免许可声音样本: http://www.orangefreesounds.com/wrong-answer-sound-effect/

很遗憾,这是 *.mp3 格式。所以我在这里找到了一个在线转换程序: https://www.online-convert.com/result/57548c3f-6cf3-40b5-9dcc-f7c3e5f03ab3 它提供了各种选项,例如 32 位浮点数、8、16、24 或 32 位的有符号或无符号整数、小端或大端、不同的采样率等。

但是当 wxSound 的构造函数试图读取转换后的文件时,我得到:声音文件 '../wrong-answer.wav' 的格式不受支持。 (至少它能找到它)。

同时我可以通过在 nautilus 中双击至少播放其中一个转换后的文件(16 位带符号整数,44100Hz,单声道)。 (视频播放器好像叫图腾)

但最大的问题是:wxSound 可以接受什么样的比特分辨率、采样率、#channels 和 PCM 格式?

对于一个简单的 beeping/buzzing 声音来说,这是一件很麻烦的事情。即使是我的 ZX Spectrum 在 1983 年也可以做到这一点而无需额外的资源文件。那里有一个哔声命令,您可以在其中传递频率和持续时间。如果不使用 SDL(例如 linux 本机 API 调用),是否可以进行类似的操作?

奖励积分:有没有解决方案可以通过 ssh 工作,现在我们都在家工作?软件在公司服务器上运行。我们在家里使用 ssh -X 获得了 GUI,但是声音?

wxBell() 使用在您的桌面环境中配置的“响铃”,因此其行为取决于平台。

至于 wxSound,不幸的是,很难说出它在您的文件中到底不喜欢什么,因为它有多项检查,但通常它不会在有效的 WAV 数据上失败。如果是自己搭建wxWidgets,最简单的查错方法就是运行gdb下的程序,做b wxSound::LoadWAV一步步执行这个函数,看看是哪个检查失败了。

我从这里得到的提示: https://trac.wxwidgets.org/ticket/14899 尝试先安装“oss-compat”,重启并测试。 也尝试安装“alsa-oss”。

我还没有检查这是否有效。