如何得到左右声道问题?只能给80分。

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

1、有个指针   lpdata   指向   buf[2048],lpdata每次读出4个字节,前2个字节为左声道,后两个字节为右声道,我想单独给左右声道付值,该如何操作。  
  2、控制左右声道还有没有其他办法?  
       
 

· 网友精彩回答:

发表者:fengsc

你用什么方式播放?

发表者:barbaraboy

我记得好象是  
  waveoutgetvolume//得到  
  waveoutsetvolume//设置  
  具体怎么用忘了  
 

发表者:sfengnet

lreturn=mcisendstring("setaudio   source   to   left",sreturn,32,0)   仅开左声道  
  lreturn=mcisendstring("setaudio   source   to   right",sreturn,32,0)   仅开右声道  
  lreturn=mcisendstring("setaudio   source   to   average",sreturn,32,0)   左右平均  
  lreturn=mcisendstring("setaudio   source   to   stereo",sreturn,32,0)   立体声,这是默认设置    
 

发表者:sfengnet

#define   wrtnlength   255  
  char   lpstrrtnstring[wrtnlength];  
  //切换左声道  
  mcisendstring("set   all   audio   all   off",lpstrrtnstring,wrtnlength,null);  
  mcisendstring("set   all   audio   left   on",lpstrrtnstring,wrtnlength,null);  
  //切换右声道  
  mcisendstring("set   all   audio   all   off",lpstrrtnstring,wrtnlength,null);  
  mcisendstring("set   all   audio   right   on",lpstrrtnstring,wrtnlength,null);

发表者:waiting4you

不明白  
  每次读出4个字节,前2个字节为左声道,后两个字节为右声道,想单独给左右声道赋值可以这样做,通过联合类型:  
   
  typedef   union  
  {  
                  char   p[4];  
                  struct{  
                  unsigned   __int16   left;  
                  unsigned   __int16   right;  
                  };  
  }tsound;  
   
  tsound   s;  
  //给4个字节赋值  
  s.p[0]=0xff;  
  s.p[1]=0xff;  
  s.p[2]=0x0;  
  s.p[3]=0x0;  
  //就样就能得出左右音量了  
  s.left就是左  
  s.right是右  
   
 

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved