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”。
我还没有检查这是否有效。
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”。
我还没有检查这是否有效。