CoolEdit로 PCM파일을 만들고(sample rate:8000, channel:mono, resolution: 8bit) 다음과 같이 테스트 프로그램을 ASM콤포넌트를 이용해서 작성했습니다..
PCM파일을 FileStream으로 불러와서 재생하게끔 한건데요..
맞는지는 모르겠습니다.. 여기저기 갖다 붙여서... ㅠㅠ
Dialog의 Codec은 PCM으로 설정했구요..
프로그램을 실행해서 버튼을 클릭하면... 엄청큰 잡음만 들립니다... ㅡ,.ㅡ;;
경험이 있으신 분이나.. 고수분들 코드 한번 봐주시기 바랍니다.. ^^
====================================================================
procedure TForm1.PlayWaveStream(Stream: TStream; Size: integer; aFormat: PWaveFormatEx);
var
data: PChar;
gauage, buffersize: Integer;
begin
Stream.Position := 0;
buffersize := 1024;
gauage := 0;
GetMem(data, buffersize);
With FACMWaveOut Do
begin
Open(aFormat);
while gauage <= Stream.Size do
begin
Stream.Read(data^, buffersize);
PlayBack(@data, buffersize);
gauage := gauage + buffersize;
end;
end;
FreeMem(data, buffersize);
end;
procedure TForm1.btnStartClick(Sender: TObject);
var
OpenFile: TFileStream;
Format : Pointer;
begin
Format := FACMDialog.OpenDialog;
OpenFile := TFileStream.Create('demo.pcm', fmOpenRead);
PlayWaveStream(OpenFile, 1024, Format);
end;
=====================================================================
엄청큰 잡음만 들리신다고 해서 짐작이 가는 것은
1. PCM파일은 (sample rate:8000, channel:mono, resolution: 8bit)로 되어 있으나 재생 하는 부분에서 재생 속성이 틀릴 경우 입니다.
예를 들자면
ex) PCM파일은 : PCM, 8000, mono, 8bit인데
재생은 : PCM, 22050, mono, 8bit일 경우
큰 잡음이 나오게 되더라구요
2. 혹시 녹음이 잘못되어 그럴수도 있습니다.
Windows Mediaplayer에서 들어 보세요
3. FileStream쪽에서 버퍼 포인터 이동이 잘못 되었을 경우 등등 많이 있습니다.
*근데 1번일 경우가 많더라구요
저도 넘 허접해서리 ㅡ,.ㅡ
그럼 즐거운 코딩 되세요