CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  VFP

请教:VFP9中如何调节音量?续

楼主shenyegh(神爷)2006-07-04 10:58:31 在 其他数据库开发 / VFP 提问

http://www.codeguru.com/Cpp/G-M/multimedia/article.php/c1575  
  上面的地址中有C语言的源代码,虽能够实现"静音"和取消"静音"但仅不能对波形的"静音"与"取消静音"进行操作,尽管如此,我仍无法将C代码应用到VFP中,有谁能够将之转换为VFP代码,最好能将波形中的"静音"和"取消静音"也加入,在此先谢过 问题点数:20、回复次数:13Top

1 楼shenyegh(神爷)回复于 2006-07-04 11:38:05 得分 0

'静音True为静音,FALSE为取消静音  
  '====================================================  
  Public   Function   SetAudioOnOff(AudioOff   As   Boolean)   As   Boolean  
          Dim   RefInt   As   Long  
          Dim   OnOff   As   String  
          SetAudioOff   =   False  
          If   AudioOff   Then   OnOff   =   "off"   Else   OnOff   =   "on"  
          RefInt   =   mciSendString("setaudio   NOWMUSIC   "   &   OnOff,   vbNull,   0,   0)  
          If   RefInt   =   0   Then   SetAudioOff   =   True  
  End   Function  
   
   
  以上是VB代码,不知能否实现静音与取消静音,能否帮忙转换成VFP代码?Top

2 楼wwwwb()回复于 2006-07-04 11:52:13 得分 10

不知能否实现静音与取消静音:不能  
  VFP:  
  DECLARE   integer   mciSendString   in   WinMM.DLL   string   lpszCommand,;  
  string   @lpszReturnString,;  
  integer   cchReturn,;  
  integer   hwndCallback  
  cRetString   =   space(80)  
  nRetValue   =   mciSendString('setaudio   NOWMUSIC   on',   null,   0,0)  
  Top

3 楼shenyegh(神爷)回复于 2006-07-04 14:16:24 得分 0

请参见  
  http://dev.csdn.net/article/13/13835.shtm  
  http://www.codeguru.com/Cpp/G-M/multimedia/article.php/c1575  
   
  以上两个网址均是关于"静音"与"取消静音"的,但我仍无法解决我的燃眉之急,请高手帮助!谢谢Top

4 楼wwwwb()回复于 2006-07-05 09:19:21 得分 0

看了一下http://www.codeguru.com/Cpp/G-M/multimedia/article.php/c1575  
  中的例子,要用mixerSetControlDetails,没有找到在VFP中的例子,比较  
  复杂。Top

5 楼chenyuandxm(一剑平江湖)回复于 2006-07-06 10:24:40 得分 5

http://vfp.sunyear.com.tw/viewtopic.php?t=2881&start=0&postdays=0&postorder=asc&highlight=  
   
  这个是介绍vfp控制音量的,可以参考下。比较复杂。Top

6 楼apple_8180(十豆三)回复于 2006-07-06 12:07:53 得分 0

楼上提供的地址不错,遗憾的是静音不好使。Top

7 楼TERRYYRRET(命运)回复于 2006-07-06 15:44:25 得分 0

UPTop

8 楼shenyegh(神爷)回复于 2006-07-06 17:41:38 得分 0

学习中Top

9 楼shenyegh(神爷)回复于 2006-07-07 11:43:06 得分 0

http://vfp.sunyear.com.tw/viewtopic.php?t=2881&start=0&postdays=0&postorder=asc&highlight=  
  网址中的代码,将if   "mute"   $   lower(substr(mute,21,16))   中的"mute"改为"主音量"便可实现"静音"----最小化音量,但仍没有选中"静音"复选框  
  我参考过一些网址(本贴上面有)的C代码,用到了GetMasterVolumeControl  
  SetMasterVolumeValue  
  GetMasterMuteValue  
  GetMasterMuteControl  
  来控制音量与静音(含WAV波形控制)  
  有没有人能够将之译成VFP代码,急切盼望中...Top

10 楼apple_8180(十豆三)回复于 2006-07-07 12:31:00 得分 5

将if   "mute"   $   lower(substr(mute,21,16))   中的"mute"改为"主音量"便可实现"静音"  
   
  可是如果先选中系统的静音,再通过这个程序,静音或非静音都不能改变原静音状态,即系统不发生,所以还是不行。Top

11 楼shenyegh(神爷)回复于 2006-07-07 12:55:10 得分 0

是的,这是另外一个问题了,现在首要的是能够实现对"静音"的选中与取消,下一步再说对音量大小的判断与控制,事实上我的程序不需要用鼠标的调节,而是实现下列功能:  
  if   静音  
        取消静音  
        将音量调至最大  
  else  
        将音量调至最大  
  endif  
   
  但目前的难题是:无法知道是否选中的"静音",更谈不上取消静音和将音量调至最大了  
  Top

12 楼shenyegh(神爷)回复于 2006-07-18 21:37:47 得分 0

以下是winmm.dll内的申明(VB),不知有没有能否实现静音的,请高手结合本贴相关代码整理:  
  Private       Declare       Function       auxGetNumDevs       Lib       "winmm.dll"       ()       As       Long        
   
  Private       Declare       Function       auxGetDevCaps       Lib       "winmm.dll"       Alias       "auxGetDevCapsA"       (ByVal       uDeviceID       As       Long,       lpCaps       As       AUXCAPS,       ByVal       uSize       As       Long)       As       Long        
   
  Private       Declare       Function       auxSetVolume       Lib       "winmm.dll"       (ByVal       uDeviceID       As       Long,       ByVal       dwVolume       As       Long)       As       Long        
    Private       Declare       Function       auxGetVolume       Lib       "winmm.dll"       (ByVal       uDeviceID       As       Long,       ByRef       lpdwVolume       As       VolumeSetting)       As       Long        
    Private       Declare       Function       joyGetDevCaps       Lib       "winmm.dll"       Alias       "joyGetDevCapsA"       (ByVal       id       As       Long,       lpCaps       As       JOYCAPS,       ByVal       uSize       As       Long)       As       Long        
   
  Private       Declare       Function       joyGetNumDevs       Lib       "winmm.dll"       ()       As       Long        
    Private       Declare       Function       joyGetPos       Lib       "winmm.dll"       (ByVal       uJoyID       As       Long,       pji       As       JOYINFO)       As       Long        
    Private       Declare       Function       mciSendString       Lib       "winmm.dll"       Alias       "mciSendStringA"       (ByVal       lpstrCommand       As       String,       ByVal       lpstrReturnString       As       String,       ByVal       uReturnLength       As       Long,       ByVal       hwndCallback       As       Long)       As       Long        
    Private       Declare       Function       midiOutGetDevCaps       Lib       "winmm.dll"       Alias       "midiOutGetDevCapsA"       (ByVal       uDeviceID       As       Long,       lpCaps       As       MIDIOUTCAPS,       ByVal       uSize       As       Long)       As       Long        
   
  Private       Declare       Function       midiOutGetNumDevs       Lib       "winmm"       ()       As       Integer        
   
  Declare       Function       mixerClose       Lib       "winmm.dll"       (ByVal       hmx       As       Long)       As       Long        
    Declare       Function       mixerGetControlDetails       Lib       "winmm.dll"       Alias       "mixerGetControlDetailsA"       (ByVal       hmxobj       As       Long,       pmxcd       As       MIXERCONTROLDETAILS,       ByVal       fdwDetails       As       Long)       As       Long        
    Declare       Function       mixerGetDevCaps       Lib       "winmm.dll"       Alias       "mixerGetDevCapsA"       (ByVal       uMxId       As       Long,       ByVal       pmxcaps       As       MIXERCAPS,       ByVal       cbmxcaps       As       Long)       As       Long        
    Declare       Function       mixerGetID       Lib       "winmm.dll"       (ByVal       hmxobj       As       Long,       pumxID       As       Long,       ByVal       fdwId       As       Long)       As       Long        
    Declare       Function       mixerGetLineInfo       Lib       "winmm.dll"       Alias       "mixerGetLineInfoA"       (ByVal       hmxobj       As       Long,       pmxl       As       MIXERLINE,       ByVal       fdwInfo       As       Long)       As       Long        
    Declare       Function       mixerGetLineControls       Lib       "winmm.dll"       Alias       "mixerGetLineControlsA"       (ByVal       hmxobj       As       Long,       pmxlc       As       MIXERLINECONTROLS,       ByVal       fdwControls       As       Long)       As       Long        
   
  Declare       Function       mixerGetNumDevs       Lib       "winmm.dll"       ()       As       Long        
    Declare       Function       mixerMessage       Lib       "winmm.dll"       (ByVal       hmx       As       Long,       ByVal       uMsg       As       Long,       ByVal       dwParam1       As       Long,       ByVal       dwParam2       As       Long)       As       Long        
    Declare       Function       mixerOpen       Lib       "winmm.dll"       (phmx       As       Long,       ByVal       uMxId       As       Long,       ByVal       dwCallback       As       Long,       ByVal       dwInstance       As       Long,       ByVal       fdwOpen       As       Long)       As       Long        
    Declare       Function       mixerSetControlDetails       Lib       "winmm.dll"       (ByVal       hmxobj       As       Long,       pmxcd       As       MIXERCONTROLDETAILS,       ByVal       fdwDetails       As       Long)       As       Long        
    Declare       Function       mmioClose       Lib       "winmm.dll"       (ByVal       hmmio       As       Long,       ByVal       uFlags       As       Long)       As       Long        
    Declare       Function       mmioDescend       Lib       "winmm.dll"       (ByVal       hmmio       As       Long,       lpck       As       MMCKINFO,       lpckParent       As       MMCKINFO,       ByVal       uFlags       As       Long)       As       Long        
   
  Top

13 楼shenyegh(神爷)回复于 2006-07-18 21:37:56 得分 0

Declare       Function       mmioDescendParent       Lib       "winmm.dll"       Alias       "mmioDescend"       (ByVal       hmmio       As       Long,       lpck       As       MMCKINFO,       ByVal       x       As       Long,       ByVal       uFlags       As       Long)       As       Long        
    Declare       Function       mmioOpen       Lib       "winmm.dll"       Alias       "mmioOpenA"       (ByVal       szFileName       As       String,       lpmmioinfo       As       mmioinfo,       ByVal       dwOpenFlags       As       Long)       As       Long        
    Declare       Function       mmioRead       Lib       "winmm.dll"       (ByVal       hmmio       As       Long,       ByVal       pch       As       Long,       ByVal       cch       As       Long)       As       Long        
    Declare       Function       mmioReadString       Lib       "winmm.dll"       Alias       "mmioRead"       (ByVal       hmmio       As       Long,       ByVal       pch       As       String,       ByVal       cch       As       Long)       As       Long        
    Declare       Function       mmioSeek       Lib       "winmm.dll"       (ByVal       hmmio       As       Long,       ByVal       lOffset       As       Long,       ByVal       iOrigin       As       Long)       As       Long        
    Declare       Function       mmioStringToFOURCC       Lib       "winmm.dll"       Alias       "mmioStringToFOURCCA"       (ByVal       sz       As       String,       ByVal       uFlags       As       Long)       As       Long        
    Declare       Function       mmioAscend       Lib       "winmm.dll"       (ByVal       hmmio       As       Long,       lpck       As       MMCKINFO,       ByVal       uFlags       As       Long)       As       Long        
    Private       Declare       Function       sndPlaySound       Lib       "winmm.dll"       Alias       "sndPlaySoundA"       (ByVal       lpszSoundName       As       String,       ByVal       uFlags       As       Long)       As       Long        
    Declare       Function       waveInOpen       Lib       "winmm.dll"       (lphWaveIn       As       Long,       ByVal       uDeviceID       As       Long,       lpFormat       As       WAVEFORMAT,       ByVal       dwCallback       As       Long,       ByVal       dwInstance       As       Long,       ByVal       dwFlags       As       Long)       As       Long        
    Declare       Function       waveInPrepareHeader       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveInReset       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInStart       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInStop       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInUnprepareHeader       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveInClose       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInGetDevCaps       Lib       "winmm.dll"       Alias       "waveInGetDevCapsA"       (ByVal       uDeviceID       As       Long,       lpCaps       As       WAVEINCAPS,       ByVal       uSize       As       Long)       As       Long        
  Declare       Function       waveInGetNumDevs       Lib       "winmm.dll"       ()       As       Long        
    Declare       Function       waveInGetErrorText       Lib       "winmm.dll"       Alias       "waveInGetErrorTextA"       (ByVal       err       As       Long,       ByVal       lpText       As       String,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveInAddBuffer       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveInOpen       Lib       "winmm.dll"       (lphWaveIn       As       Long,       ByVal       uDeviceID       As       Long,       lpFormat       As       WAVEFORMAT,       ByVal       dwCallback       As       Long,       ByVal       dwInstance       As       Long,       ByVal       dwFlags       As       Long)       As       Long        
    Declare       Function       waveInPrepareHeader       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveInReset       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInStart       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInStop       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInUnprepareHeader       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveInClose       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveInGetDevCaps       Lib       "winmm.dll"       Alias       "waveInGetDevCapsA"       (ByVal       uDeviceID       As       Long,       lpCaps       As       WAVEINCAPS,       ByVal       uSize       As       Long)       As       Long        
  Declare       Function       waveInGetNumDevs       Lib       "winmm.dll"       ()       As       Long        
    Declare       Function       waveInGetErrorText       Lib       "winmm.dll"       Alias       "waveInGetErrorTextA"       (ByVal       err       As       Long,       ByVal       lpText       As       String,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveInAddBuffer       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveOutGetPosition       Lib       "winmm.dll"       (ByVal       hWaveOut       As       Long,       lpInfo       As       MMTIME,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveOutOpen       Lib       "winmm.dll"       (hWaveOut       As       Long,       ByVal       uDeviceID       As       Long,       ByVal       format       As       String,       ByVal       dwCallback       As       Long,       ByRef       fPlaying       As       Boolean,       ByVal       dwFlags       As       Long)       As       Long        
    Declare       Function       waveOutPrepareHeader       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveOutReset       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
   
      Declare       Function       waveOutUnprepareHeader       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long,       lpWaveInHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveOutClose       Lib       "winmm.dll"       (ByVal       hWaveIn       As       Long)       As       Long        
    Declare       Function       waveOutGetDevCaps       Lib       "winmm.dll"       Alias       "waveInGetDevCapsA"       (ByVal       uDeviceID       As       Long,       lpCaps       As       WAVEINCAPS,       ByVal       uSize       As       Long)       As       Long        
   
  Declare       Function       waveOutGetNumDevs       Lib       "winmm.dll"       ()       As       Long        
    Declare       Function       waveOutGetErrorText       Lib       "winmm.dll"       Alias       "waveInGetErrorTextA"       (ByVal       err       As       Long,       ByVal       lpText       As       String,       ByVal       uSize       As       Long)       As       Long        
    Declare       Function       waveOutWrite       Lib       "winmm.dll"       (ByVal       hWaveOut       As       Long,       lpWaveOutHdr       As       WAVEHDR,       ByVal       uSize       As       Long)       As       Long    
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:shenyegh
  • wwwwb
  • chenyuandxm
  • apple_8180

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo