我正在尝试使用 MessageBeep
播放声音的 API,但没有播放声音。
MessageBeep(MB_ICONINFORMATION);
MessageBeep(MB_ICONASTERISK);
MessageBeep(MB_ICONEXCLAMATION);
MessageBeep(MB_ICONERROR);
MessageBeep(MB_ICONHAND);
MessageBeep(MB_ICONINFORMATION);
MessageBeep(MB_ICONQUESTION);
MessageBeep(MB_ICONSTOP);
MessageBeep(MB_ICONWARNING);
MessageBeep(MB_OK);
- 是的,已插入扬声器
- 是的,音量已调高
- 是的,我听到了其他 MessageBeep(UAC、默认、错误等)
- 是的,我听到了来自其他应用程序的音频 (what i'm listing to right now is irocnical)
- Windows 10.0.14393 64 位
- 交互式连接(即不通过终端服务远程桌面 session )
函数(返回
BOOL
)返回true
是的,在控制面板的声音小程序中设置了“默认”声音
- 启动Beep服务(虽然
Beep
功能在这里不相关) 不允许应用程序独占我的默认(也是唯一)声音设备:
Windows 不会尝试播放任何声音;您在音量混合器中看不到“输出电平”:
我错过了什么?
重现问题的示例代码
procedure TForm4.Button1Click(Sender: TObject);
begin
MessageBox(0, 'About to play sounds', 'TestApp', MB_OK);
MessageBeep(MB_ICONINFORMATION);
MessageBeep(MB_ICONASTERISK);
MessageBeep(MB_ICONEXCLAMATION);
MessageBeep(MB_ICONERROR);
MessageBeep(MB_ICONHAND);
MessageBeep(MB_ICONINFORMATION);
MessageBeep(MB_ICONQUESTION);
MessageBeep(MB_ICONSTOP);
MessageBeep(MB_ICONWARNING);
MessageBeep(MB_OK);
MessageBeep($ffffffff);
MessageBox(0, 'After playing sounds', 'TestApp', MB_OK);
end;
测试于:
另见
红利阅读
Larry Osterman: What’s up with the Beep driver in Windows 7?
Windows
Beep
功能从 Windows 7 开始重新设计,不再使用 PC 扬声器,现在使用默认声音设备。
最佳答案
我现在已经解决了这个问题 第一步:单击扬声器图标上的任务栏 进入选项,你必须toogle系统声音。 屏幕截图是在 Windows 7 家庭 Prenium 法语版上拍摄的,但在最新版本中可能几乎相同。
关于windows - MessageBeep 不播放任何声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42125082/