ACMComponent 1.6 버젼으로 음성채팅 구현해보려고 합니다.
acmFormatChoose 를 사용해서 WAVEFORMATEX 구조체를 설정하지 않으면
WaveinOpen 시 에러가 나나요?
WaveInOpen 시 WAVEFORMATEX 인자를 그냥 초기화(메모리 할당)하고
값을 수동으로 설정해서 넘겨주면 에러가 나던데요...
WaveInOpen (@FHandle,FDeviceID,FFmtChooser.WaveFormatEx,DWORD(@WaveInProc),DWORD(Self),CALLBACK_FUNCTION or WAVE_MAPPED))
ACMIn 컴퍼넌트의 Open 메서드 안쪽에 위와같이 정의되어 있습니다.
FFmtChooser.WaveFormatEx 를 acmFormatChoose 함수를 이용하지 않고
그냥 수동으로 설정하고 WaveInOpen 을 시키면 에러가 나네요
'Cannot open wave in device : error number 32'
컴퍼넌트와 예제가 들어있는 파일 올리겠습니다.
예제에서 폼위에 ACMDlg 를 ACMChooser 로 교체하시고 테스트 해보세요
어떻게 해야 포맷설정 대화상자를 안띄우고 바로 실행할 수 있는지 궁금합니다.
두번째 첨부파일은 제가 예제를 수정해서 에러나는 겁니다.
ACMFormatChoose컴포넌트를 안쓰실려면 WaveInOpen의 세번째 인자로 들어가는 레코드 구조체형 안의 값들을 직접 채워서 넣어주시면 됩니다.
acmFormatChoose를 사용했을때의 값하고 수동으로 넣어주었을때의 값을 비교해보세요. 아마도 두개가 틀릴거 같네요...
GSM과 같이 몇몇 포멧들은 TWaveFormatEx뒤에 추가로 데이터들이 더 들어갑니다. 참고하세요...
^^ 항상 즐코하세요...