如何检测Windows XP机器上是否播放任何声音
发布时间:2020-12-13 20:31:35 所属栏目:Windows 来源:网络整理
导读:是否有可能检测到Windows XP机器上是否有声音?任何语言的帮助都会很有用.我基本上需要编写一个一直运行的程序,并在播放声音时将一些文本输出到文件中.我不需要任何关于声音的具体信息,只需要播放声音.我不关心扬声器是否真的开机或类似的东西. 问题很简单,
是否有可能检测到Windows XP机器上是否有声音?任何语言的帮助都会很有用.我基本上需要编写一个一直运行的程序,并在播放声音时将一些文本输出到文件中.我不需要任何关于声音的具体信息,只需要播放声音.我不关心扬声器是否真的开机或类似的东西.
问题很简单,但答案很难.您需要利用DirectSound来实现您的目的.我还没有测试过我的解决方案,但您可以尝试调用
IDirectSoundBuffer8::GetStatus(),然后检查pdwStatus参数的返回值.根据MSDN,如果正在听到缓冲区,则设置DSBSTATUS_PLAYING.
既然你没有讲述你正在使用的编程语言,我使用我最喜欢的语言Delphi实现了以下示例. var dwStatus: DWORD; hResult: HRESULT; hResult := GetStatus(@dwStatus); if hResult = DS_OK then begin if dwStatus and DSBSTATUS_PLAYING <> 0 then ShowMessage('Sound card is playing sound now.'); end; UPDATE 我刚刚发现一个关于how to detect silence的VB论坛(没有输出声卡).下载DetSilence.zip.在DXRecord_GotWavData Sub中,将常量SilencePercent和NonSilencePercent修改为您需要的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Qt4:调整哪个小部件专注于开始
- 升级到Windows 10后升级
- windows-ce – 如何下载适用于Windows CE 5.0的Platform Bu
- active-directory – Windows域控制器的云托管,可能吗?
- windows – AutoHotKey:带多行输入的InputBox
- 使用doSMP和foreach的并行随机森林大大增加了内存使用量(在
- windows-server-2008 – 如何监控Windows进程的工作集大于4
- .net – 用于Windows 7手机的ORM映射器
- 在windows下使用Cygwin模拟unix环境 并安装apt-cyg svn等插
- windows10+anaconda3+pytorch 编程环境的安装
推荐文章
站长推荐
- 如何在Windows上使用Perl从STDIN中读取单个字符?
- 在Windows(Vista)中将文件重命名为空文件名
- 未安装Server 2012 Server Core PowerShell
- Windows API一日一练 13 TranslateMessage函数
- windows – ncat SSL问题,证书验证失败(自签名证
- Microsoft Windows中的FIPS“单用户模式”要求
- Windows – Delphi XE2 64位应用程序和Applicati
- Windows批处理FOR命令选项卡分隔符
- windows-server-2008 – 对于ASP.Net应用程序,Wi
- .net – MSB90错误MSB3086,与TeamCity
热点阅读