gpt4 book ai didi

c - C 钢琴,sdl 声音问题

转载 作者:行者123 更新时间:2023-11-30 18:35:52 27 4
gpt4 key购买 nike

我不想用 C(1999) 构建自己的钢琴,但(声音)输出存在一些问题。
该程序检测预置键以及按下它们的时间...如果按下某个键,它会启动一个新的线程(phthread),该线程应该播放指定的wav文件,如果不再按下该键,该线程将被终止。
SDLmain() 中加载,并且音频设备在 main 中打开(作为全局)。
但问题是,即使声音线程终止,SDL 仍会继续播放。

所以我想要的是:
一次最多可以播放 8 个声音的声音函数,“实时播放”(不要将完整文件加载到缓冲区并开始播放),可以全局初始化

抱歉我的语言:(

程序适用于 Arch Linux 系统,但全平台(Unix、OSX、Ms Windows)会更好。

最佳答案

即使您可能认为您的线程正在播放声音,但您不应该这样想。您的线程使 SDL 开始播放该声音,因此如果您终止线程,就没有任何东西可以停止播放该声音。

实际上,您根本不需要线程:

  • 按下某个键时,在下一个空闲 channel 上启动声音。
  • 跟踪这一对( key 、 channel )
  • 如果释放了按键,则查找(按键, channel )对并使用该特定 channel 作为参数调用 Mix_HaltChannel

关于c - C 钢琴,sdl 声音问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44454112/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com