我尝试使用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);
函数(返回BOOL
)返回true
是的,控制面板的声音小程序中设置了"默认" 声音
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扬声器,现在使用默认声音设备。