我不想在C(1999)中建立自己的钢琴,但是(声音)输出存在一些问题。
程序检测到预置的键,以及按下它们的时间长短......
如果按下一个键,它会启动一个新的thread(phthread)
,它应该播放指定的 wav 文件,如果没有按下该键,线程将被终止。
SDL 加载在main()
中,音频设备在main中打开(作为全局)。
但问题是即使声音线程终止,SDL仍在继续播放。
所以我想要的是:
一个声音功能一次最多可以播放8个声音,“正在播放”(不要将完整的文件加载到thr缓冲区并开始播放),可以初始化为globaly
对不起我的语言:(
Programm适用于Arch Linux系统,但是所有平台(Unix,OSX,Ms Windows)都会更好。
答案 0 :(得分:3)
即使你可能认为你的线程正在播放声音,你也不应该这么想。你的线程让SDL开始播放那个声音,所以如果你杀了你的线程,就没有什么可以停止播放那个声音了。
你实际上根本不需要线程:
Mix_HaltChannel
。答案 1 :(得分:0)
编辑:
已经找到了: Mix_Volume(频道,音量)