微软acm音频压缩转换疑问

                            
type   
      TACMWaveFormat   =   packed   record  
          case   integer   of  
              0   :   (Format   :   TWaveFormatEx);  
              1   :   (RawData   :   Array[0..128]   of   byte);  
  end;  
   
  .........  
   
   
  var  
      mmr:   mmresult   ;  
      outSize   :   DWord   ;  
      FStreamhandle:   HACMStream   ;  
      InputBufferSize,   OutputBufferSize:   Dword   ;  
  begin  
      with   FormatIn.Format   do   begin  
          wFormatTag   :=   $1;  
          nChannels   :=   1;  
          nSamplesPerSec   :=   8000;  
          nAvgBytesPerSec:=   8000;  
          nBlockAlign:=1;  
          wbitspersample   :=   8;  
          cbSize   :=   0   ;   //SizeOf(TACMWaveFormat);  
      end;  
      with   FormatOut.Format   do   begin  
          wFormatTag   :=   $1;  
          nChannels   :=   1;  
          nSamplesPerSec   :=   16000;  
          nAvgBytesPerSec:=   16000;  
          nBlockAlign:=1;  
          wbitspersample   :=   8;  
          cbSize   :=   0   ;//SizeOf(TACMWaveFormat);  
      end;  
   
      mmr   :=   acmStreamOpen(@FStreamhandle,0,   FormatIn.Format,   FormatOut.Format,   nil,   0,   0,   0   );  
      if   mmr   <>   0   then   exit   ;  
      mmr   :=   acmStreamSize(FStreamHandle,   InputBufferSize,   OutputBufferSize,   ACM_STREAMSIZEF_SOURCE);  
      if   mmr   <>   0   then   exit   ;  
  如果按上面的转换没有问题   但是一旦将转换8位的pcm转换为16位的pcm   或16位转换为16位出错   是不是acm管理不支持16位音频数据转换??   希望高手帮忙解答!

查看回复