| 
                     | 
                    
                        主题:  滨滨及有兴趣的人:好奇怪的音量控制问题--请您查错!
                     | 
                
            
                        
                
                    
                          dreamexpress_5d 
                        职务:普通成员 
                        等级:1 
                        金币:10.0 
                        发贴:2229 
                     | 
                    
                        
                            
                            #12003/10/25 23:22:15 
                            
                                用你的BINAPI。U32函数控制音量,没人比你更熟悉这个了吧??呵呵,进入正题!
 
  做了一个程序按钮,其下挂的计算图标内容如下: ------------------------------------------------------------------------------------------------- --功能:音量加大 --程序先增加WAV音量,WAV音量达到100后(不能再加),就增加主音量 --当主音量达到100后(不能再加),不再做增音量的操作。 --并使“TV_音量加”按钮失效(BTN_VOL_ADD=FALSE)。
  --变量说明:DELTA_VOL变量是增加音量的“步长”,按一下音量就增加DELTA_VOL
 
  其余变量在程序中给了说明,应不难理解。 ----------------------------------------------------- TV_VOL_W:=BNA_GetVolume(1)--读取WAV音量 TV_VOL_M:=BNA_GetVolume(0)--读取主音量
  if TV_VOL_W<100 then
      if TV_VOL_W+DELTA_VOL<=100 then            TV_VOL_W:=TV_VOL_W+DELTA_VOL         BNA_SetVolume(1, TV_VOL_W)--WAV音量增加
      else         TV_VOL_W:=100         BNA_SetVolume(1, TV_VOL_W)--WAV音量为100     end if
  end if ---------------------------------------------------------------------------------------- if  TV_VOL_W=100 then
      if TV_VOL_M+DELTA_VOL<=100 then         TV_VOL_M:= TV_VOL_M+DELTA_VOL         BNA_SetVolume(0, TV_VOL_M)--主音量增加
      else         TV_VOL_M:=100         BNA_SetVolume(0, TV_VOL_M)--主音量为100         BTN_TV_VOL_ADD:=FALSE--使“TV_音量加”按钮失效(BTN_VOL_ADD=FALSE)     end if
  end if -------------------------------------------------------------------
                             
                            
                                
                                    编辑历史:[此帖被dreamexpress编辑过(编辑时间2003-10-25 23:32:19)] [此帖被dreamexpress编辑过(编辑时间2003-10-25 23:38:47)] [此帖被dreamexpress编辑过(编辑时间2003-10-25 23:40:20)] [此帖被dreamexpress编辑过(编辑时间2003-10-25 23:40:59)] [此帖被dreamexpress编辑过(编辑时间2003-10-25 23:41:58)] [此帖被dreamexpress编辑过(编辑时间2003-10-25 23:45:28)] [此帖被dreamexpress编辑过(编辑时间2003-10-26 00:04:45)] [此帖被dreamexpress编辑过(编辑时间2003-10-26 00:15:39)] 
                                     
                                 
                             
                            
                         
                     | 
                
                        
                
                    
                          dreamexpress_5d 
                        职务:普通成员 
                        等级:1 
                        金币:10.0 
                        发贴:2229 
                     | 
                    
                        
                            
                            #22003/10/25 23:29:16 
                            
                                HTML文件居然不能把缩进粘过来,看那么多IF可能有点麻烦你了,不好意思呀。
  上述程序应可以实现“先增加WAV音量,然后再增加主音量”的功能。
  测试时,点这个按钮却“WAV音量与主音量同步增加(程序运行时,我打开WINDOWS的音量控制程序观察得到,即二个滑块一起上升到顶)
  好怪啊!
  最后按经验,改了一下才正确了。这个错好难查呀~。还好总算查出来了,正在想个合理的解释,还没想好,呵呵。 滨滨,请先看一下程序,看看能不能直接看出错误,我后面再说改哪个地方了好吗??
  真心希望与你交流。
                             
                            
                                
                                    编辑历史:[此帖被dreamexpress编辑过(编辑时间2003-10-25 23:37:27)] [此帖被dreamexpress编辑过(编辑时间2003-10-26 00:01:55)] [此帖被dreamexpress编辑过(编辑时间2003-10-26 00:12:21)] 
                                     
                                 
                             
                            
                         
                     | 
                
                        
                
                    
                          滨滨 
                        职务:版主 
                        等级:4 
                        金币:13.0 
                        发贴:1931 
                     | 
                    
                        
                            
                            #32003/10/27 8:18:31 
                            
                                似乎没有什么问题,不过你的程序逻辑和分支写的感觉不太舒服   我自己都很久不搞AW了,那个ucd我一时也找不到,有时间的时候试试吧。
                              
                            
                            
                         
                     | 
                
                        
                
                    
                          dreamexpress_5d 
                        职务:普通成员 
                        等级:1 
                        金币:10.0 
                        发贴:2229 
                     | 
                    
                        
                            
                            #42003/10/27 8:56:21 
                            
                                BINAPI.U32下载 相关文件: 点这儿打开"if TV_VOL_W=100 then"这句的条件TV_VOL_W=100 居然有问题,因为程序运行时好象根本认为这个条件是TRUE。 将其改为TV_VOL_W>=100即可。 修改后的程序如下: ----------------------------------------------------- TV_VOL_W:=BNA_GetVolume(1)--读取WAV音量 TV_VOL_M:=BNA_GetVolume(0)--读取主音量 if TV_VOL_W<100 then if TV_VOL_W+DELTA_VOL<=100 then  TV_VOL_W:=TV_VOL_W+DELTA_VOL BNA_SetVolume(1, TV_VOL_W)--WAV音量增加 else TV_VOL_W:=100 BNA_SetVolume(1, TV_VOL_W)--WAV音量为100 end if ----原"end if"(去掉) else ----原”if TV_VOL_W=100 then“(去掉) if TV_VOL_M+DELTA_VOL<=100 then TV_VOL_M:= TV_VOL_M+DELTA_VOL BNA_SetVolume(0, TV_VOL_M)--主音量增加 else TV_VOL_M:=100 BNA_SetVolume(0, TV_VOL_M)--主音量为100 BTN_TV_VOL_ADD:=FALSE--使“TV_音量加”按钮失效(BTN_VOL_ADD=FALSE) end if end if    
                             
                            
                                
                                    编辑历史:[此帖被dreamexpress编辑过(编辑时间2003-10-27 09:24:41)] [此帖被dreamexpress编辑过(编辑时间2003-10-27 09:25:12)] 
                                     
                                 
                             
                            
                         
                     | 
                
                        
                
                    
                          dreamexpress_5d 
                        职务:普通成员 
                        等级:1 
                        金币:10.0 
                        发贴:2229 
                     | 
                    
                        
                            
                            #52003/10/27 8:58:32 
                            
                                "if TV_VOL_W=100 then"这句的条件TV_VOL_W=100难道被AW认为是赋值语句?所以一直认为是TRUE??不可能啊!真是无法解释了。。。
                             
                            
                                
                                    编辑历史:[此帖被dreamexpress编辑过(编辑时间2003-10-27 09:38:22)] 
                                     
                                 
                             
                            
                         
                     | 
                
                        
                
                    
                          dreamexpress_5d 
                        职务:普通成员 
                        等级:1 
                        金币:10.0 
                        发贴:2229 
                     | 
                    
                        
                            
                            #62003/10/27 9:06:16 
                            
                                BINAPI.U32下载 相关文件: 点这儿打开那个U32我放上来了。能看看我的问题吗?原来的程序到底错在哪?就是感觉不太舒服的那段程序到底错在哪??? 滨滨在上个帖子中说  引用:  不过你的程序逻辑和分支写的感觉不太舒服    
   修改后的应改是最舒服的了吧?
                              
                            
                                
                                    编辑历史:[此帖被dreamexpress编辑过(编辑时间2003-10-27 09:27:30)] [此帖被dreamexpress编辑过(编辑时间2003-10-27 09:28:11)] 
                                     
                                 
                             
                            
                         
                     | 
                
                        
                
                    
                          与人同乐 
                        职务:管理员 
                        等级:6 
                        金币:18.0 
                        发贴:3928 
                     | 
                    
                        
                            
                            #72003/10/27 9:39:19 
                            
                                我以前总是用QTXtra播放声音,兼控制音量和声音数量,不用API编程。
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          魔岩 
                        职务:版主 
                        等级:6 
                        金币:34.0 
                        发贴:4453 
                     | 
                    
                        
                            
                            #82003/10/27 15:14:33 
                            
                                这么长的问题。。还真的懒的看。。   
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          滨滨 
                        职务:版主 
                        等级:4 
                        金币:13.0 
                        发贴:1931 
                     | 
                    
                        
                            
                            #92003/10/27 21:01:32 
                            
                                我的代码,我觉得这样感觉更好些,运行时没有问题. =================================== DELTA_VOL=10 ... =================================== TV_VOL_W:=BNA_GetVolume(1)--读取WAV音量 TV_VOL_M:=BNA_GetVolume(0)--读取主音量
  if TV_VOL_W< 100 then   TV_VOL_W=TV_VOL_W+DELTA_VOL   if TV_VOL_W>100 then     TV_VOL_W=100   end if   BNA_SetVolume(1, TV_VOL_W)--WAV音量增加 else   if TV_VOL_M<100 then     TV_VOL_M=TV_VOL_M+DELTA_VOL     if TV_VOL_M>100 then       TV_VOL_M=100     end if   end if   BNA_SetVolume(0, TV_VOL_M)--主音量增加 end if 
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          滨滨 
                        职务:版主 
                        等级:4 
                        金币:13.0 
                        发贴:1931 
                     | 
                    
                        
                            
                            #102003/10/27 21:03:13 
                            
                                跟你后面改了的很象.
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          dreamexpress_5d 
                        职务:普通成员 
                        等级:1 
                        金币:10.0 
                        发贴:2229 
                     | 
                    
                        
                            
                            #112003/10/28 11:36:52 
                            
                                确实你的更简洁,长久没编程序居然思维如此不清晰,可悲。
  
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          魔岩 
                        职务:版主 
                        等级:6 
                        金币:34.0 
                        发贴:4453 
                     | 
                    
                        
                            
                            #122003/10/28 13:09:59 
                            
                                aw的东西不能算编程   
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          dreamexpress_5d 
                        职务:普通成员 
                        等级:1 
                        金币:10.0 
                        发贴:2229 
                     | 
                    
                        
                            
                            #132003/10/28 14:08:01 
                            
                                Rock在上个帖子中说  引用:  aw的东西不能算编程   
   我说了我在用AW编程了吗?我只是说我好长时间没编程序,这种IF语句居然写不好了。 干吗这么叫真呀。ROCK老大?     
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          魔岩 
                        职务:版主 
                        等级:6 
                        金币:34.0 
                        发贴:4453 
                     | 
                    
                        
                            
                            #142003/10/28 15:46:25 
                            
                                  果然胸有大痔。。。   
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          与人同乐 
                        职务:管理员 
                        等级:6 
                        金币:18.0 
                        发贴:3928 
                     | 
                    
                        
                            
                            #152003/10/29 11:24:50 
                            
                                AW的东西怎么不能叫编程?  程序代码可以写地到处都是。加了JS后,编程手段更多了,起码按位与、或没什么问题了。
                              
                            
                            
                         
                     |