[질문] ACMComponent 1.6 코덱선택 대화상자를 코딩으로. 답변좀.
안녕하세요.
이전에 두분정도가 저랑 비슷하게 질문을 올리셨었는데.
답을 봐도.. 직접 해봐도 잘 되지 않습니다.
with aFmt^ do
begin
wFormatTag := 49;
nChannels := 1;
nSamplesPerSec := 44100;
nAvgBytesPerSec := 8957;
nBlockAlign := 65;
wBitsPerSample := 0;
CbSize := 2;
end;
SendFrm.ACMFormatChooser1.UseFormat(aFmt,SizeOf(aFmt));
with SendFrm.ACMFormatChooser1 do
begin
wFormatTag := 49;
nChannels := 1;
nSamplesPerSec := 44100;
nAvgBytesPerSec := 8957;
nBlockAlign := 65;
nBitsPerSample := 0;
CbSize := 2;
end;
위에 처럼 EX구조체에 맞는 데이터는 다 넣어도 AcmIN 컴포넌트에서 WaveInOpen WaveFormatEx에 들어가는게 더 있다는 말씀이신지
FC: TACMFORMATCHOOSEA; 이녀석을 모조리 채우라는 말씀이신지? 잘 모르겠습니다.
브레이크로 찍어 보면 위에 afmt값은 동일하게 들어가는데 말이죠
TACMDlg 는 TACMFormatChooser를 상속받아서 하는일이 별로 없구.
TACMFormatChooser녀석도 특별한거는 없습니다. 별루 인자값을 채우는건 없구요.
결국 직접 구조체의 파라미터를 채우는 것과 차이는.
acmFormatChoose 이 함수의 호출인데요. 이걸 대체 할수 있는 기능이 필요한
것이 아닌지요?
acmFormatChoose 이넘오 FC에 구조체를 다 채워서 WaveINOpen시에 오류가 나지 않는
건가요?
예제 코드를 간단하게 보여주시며 안될까요?
아마도 GSM 6.10코덱인거 같은데...
CbSize가 2인것에서 알 수 있듯이 뒤에 2바이트가 추가로 더 붙습니다.
뒤에 2바이트는 Samples Per Block 입니다.
예전에 썼던 컴포넌트지만 지금은 깔리지 않아서 예제는 힘들겠네요...
^^ 그럼 즐코하세요...