SDL_Mixer 设置声音位置

Posted

技术标签:

【中文标题】SDL_Mixer 设置声音位置【英文标题】:SDL_Mixer set sound position 【发布时间】:2013-02-04 16:57:04 【问题描述】:

我想知道SDL_Mixer 库中是否有一个功能可以跳到 wav 文件中的某个位置。我发现有一个名为Mix_SetMusicPosition 的函数,但它不适用于.wav 文件,并且它不会让您选择频道。 任何建议将不胜感激。

编辑: 我想出了怎么做。我没有调用其他函数,而是更改了位于Mix_Chunk 结构中的abuf 变量的起始指针。我计算了以 44khz 播放的 16 位 .wav 文件中每秒有多少字节,并将 abuf 的起始指针更改为该数字乘以我想跳过的秒数。然后改变alen的长度,同样是位于Mix_Chunk结构中的变量,字节数相同。

【问题讨论】:

如果您将编辑更改为带有小代码示例的答案,则对网站更有帮助。 【参考方案1】:

我刚刚阅读了 SDL Music 的文档,显然 Mix_SetMusicPosition 仅支持 OGG、MP3 和 MOD 文件。

链接:http://jcatki.no-ip.org:8080/SDL_mixer/SDL_mixer_65.html#SEC65

明显的解决方案;转换你的 wav。文件转换为您之前提到的最喜欢的文件格式。

【讨论】:

是的,我也发现了这个功能,但是由于我正在使用频道并且Mix_SetMusicPosition 不支持我想知道是否还有其他隐藏的功能。不过感谢您的努力!

以上是关于SDL_Mixer 设置声音位置的主要内容,如果未能解决你的问题,请参考以下文章

如何像 SDL_Mixer 那样播放多种声音,但在 SDL2 中是原生的?

SDL_Mixer 声音问题

将音乐作为 SDL_Mixer 块运行

c++ SDL_mixer 错误,Mix_LoadWAV_RW with NULL src

在 Edge 和 Safari (emscripten) 中使用 SDL_mixer 播放 .ogg 文件

SDL_Mixer 无法处理部分代码