Q&A

  • ACM 컴포넌트에서 다이얼로그 안띄우는 방법은? (mp3 포맷의 경우로..)
GSM 같은 경우에는 다이얼로그 안뛰우는 방법은 여기 질문과 답변에서 확인후 잘됩니다.

그런데 mp3 의 경우에는 어떠한 식으로 해야 하나요?
TWaveFormatEx 구조체의 cbSize 가 GSM 의 경우에는 2, mp3 의 경우에는 12 byte 이던데..

12 byte 를 더 추가하는 방법은 어떻게 해야하나요?
format 을 적용해서 mp3 포맷으로 다이얼로그를 안뛰고싶습니다.

다음은 여기 질답란에서 시삽님이 다른분의 질문에 답변 달았던 내용입니다.
mp3 의 경우에는 어떻게 변형시켜야 하나요?

원래 GSM으로 해볼까 했는데..파일로 저장후에 읽어드릴려고 하니 노이즈가 상당히 심하네요.

컴포넌트는 ACMWAVEIO 던가??? 여기 자료실에서 ACM 으로 처음 나온것을 사용하였습니다.


type
    PGSM610WaveFormat = ^TGSM610WaveFormat;
    TGSM610WaveFormat = packed record
        wfx: TWaveFormatEx;
        wSamplesPerBlock: Word;
    end;

function BuildGSM610Header(SampleRate: integer): PGSM610WaveFormat;
begin
   Result := GlobalAllocMem(sizeOf(TGSM610WaveFormat));
   with Result^ do
   begin
      wfx.wFormatTag     := WAVE_FORMAT_GSM610;
      wfx.nChannels      := 1;
      wfx.nSamplesPerSec := SampleRate;
      wfx.wBitsPerSample := 0;
      wfx.nAvgBytesPerSec:= 0;
      wfx.nBlockAlign    := 65;
      wfx.cbSize         := 2;
      wSamplesPerBlock   := 320;

      case SampleRate of
         8000 : wfx.nAvgBytesPerSec := 1625;
         11025: wfx.nAvgBytesPerSec := 2239;
         22050: wfx.nAvgBytesPerSec := 4478;
         44100: wfx.nAvgBytesPerSec := 8957;
      end;
   end;
end;

0  COMMENTS