声音无法使用PlaySound
Sound not working with PlaySound
所以我正在尝试制作一个简单的DLL来在另一个程序中播放声音。我正在尝试使用播放声音功能,我已经设置好了,但当我在其他程序中运行它时,我会收到默认的嘟嘟声。这是我的密码。
export double sound_manage(const char* file_old,double handler)
{
/*
Handler values:
0 - Play sound
1 - Loop sound
2 - Stop sound
*/
bool good;
double ret;
double op;
if (handler == 0) op = SND_ASYNC;
if (handler == 1) op = SND_LOOP;
if (handler == 2) op = SND_PURGE;
LPCTSTR file;
file = LPCTSTR(file_old);
good = PlaySound(file,NULL,op);
ret = double(good);
return ret;
}
我在链接器中包含了winmib或其他什么,但我不知道发生了什么。
非常感谢您的帮助!
文档包括以下内容:
fdwSound中的三个标志(SND_ALIAS、SND_FILENAME和SND_RESOURCE)确定该名称是否被解释为系统的别名事件、文件名或资源标识符。如果没有这些标志如果指定了,PlaySound将在注册表或WIN.INI文件中搜索与指定声音名称的关联。
因此,如果你想在磁盘上播放文件,你必须包含SND_FILENAME
标志,例如:
if (handler == 0) op = SND_ASYNC | SND_FILENAME;
if (handler == 1) op = SND_LOOP | SND_ASYNC | SND_FILENAME;
另外,这条线可能错了:
file = LPCTSTR(file_old);
如果不使用Unicode进行编译,则file_old
与file
兼容,因此不需要强制转换。如果使用Unicode进行编译,则类型转换是不够的。
如果您得到默认的嘟嘟声,那么很可能是找不到声音文件。PlaySound
在当前目录中搜索声音文件,然后是windows目录,然后是系统目录,最后是PATH。
相关文章:
- Xaudio2在更改缓冲区或循环时弹出声音
- 如何更改'a'声音?
- 对函数 PlaySound 使用字符串变量
- 如何收听Windows当前正在播放的声音?
- 使用变量值作为 PlaySound 中的路径
- Visual Studio C++ PlaySound 标识符未定义
- 如何在 c++ 中循环中使用频率变化的声音?
- 如何在C++中播放声音?
- C++ PlaySound() 给出错误
- 波形音频 - waveOutWrite 发出断断续续的声音
- 如何使用 ALSA API 在应用程序中在单声道和立体声之间切换声音输出?
- 有没有办法毫不拖延地播放声音?
- 在不打开应用程序的情况下在MinGW c++中播放声音(.wav)文件
- 如何强制停止声音/ bgm正在通过PlaySound方法播放
- "PlaySound()"播放默认窗口错误声音的功能
- 声音无法使用PlaySound
- PlaySound不能播放两个异步声音
- PlaySound() mmslib不播放现有的声音
- PlaySound()适用于1个声音,是否有更多的函数
- PlaySound 仅播放默认"SystemAsterisk"声音(Windows 10、C++、Python)