【发布时间】:2014-05-25 23:29:54
【问题描述】:
我正在尝试在我的 Win32 API pong 游戏中播放 .wav 声音。当一个桨向另一个桨发射“火球”时,我想播放 .wav 文件,但是在声音持续期间一切都停止了。我想用多线程来解决这个问题。
我试图解决这个问题的方式没有区别:
线程创建和函数调用:
std::thread t1(&Game::PlayFire, this);
t1.join();
播放声音功能:
void Game::PlayFire()
{
PlaySound(TEXT("fireball.wav"), NULL, SND_FILENAME);
}
我真的只是在寻找 std::head 解决方案,但是任何可能的答案都值得赞赏。
谢谢! 谢恩
【问题讨论】:
-
替换 t1.join();用 t1.detach();有效,但是我不确定这是否安全。我想我会发布它以防其他人遇到这个问题,并且我没有得到比我可以从谷歌中刮出的更多知识的帮助。更多帮助绝对值得赞赏,但这是一个有点有用的解决方案,前提是我没有遗漏任何东西。
-
您不需要将
SND_ASYNC作为标志传递吗?
标签: c++ multithreading winapi delay wav