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位音频数据转换?? 希望高手帮忙解答!