|
김민수 님이 쓰신 글 :
: 전체 음성파일 버퍼 :PCM 파일의 Header를 제외한 데이터만 전송
:
: PCM 파일의 Header를 제외한 데이터만 전송인데 전송해야 할 변수가
: byte pbyCallBackData; 입니다.
:
: TFileStream *inHandle = new TFileStream("1.wav", fmOpenRead);
: // if ( inHandle == NULL) return false ;
: char *pbyCallBackData= new char[inHandle->Size];
: inHandle->Read(pszBuffer,inHandle->Size);
:
: 이런식으로 해서 버퍼에 들어가다가 0x00값을 만나면 그 다음 값부터는 들어가지 않습니다.
:
: 어떻게해야 버퍼에 다 넣을 수있나요?
:
: header 부분은 빼는 법은
: RIFF의 size - DATA size 의 값부터 나오면 될거같은데
:
: byte 형에 wav 값들을 어떻게 넣어야 하나요?
:
특정값을 만날때 값이 들어가지 않는다면 해당 값에 분기되는 이유를 찾아보고 해결해 보심이 어떨지요.
아마 0x00에서 끝난다면 문자열로 취급할때 0x00(null char)로 생각해서 읽는건 중단 하거나 한 걸수도 있고요.
그런데 위 코드에서 file스트림은 읽거나 불러오기 한뒤에 무언가 데이터를 작업하려면
포지션을 다시 지정해줘야 정상적인 값이 나오지 않나요?
파일스트림은 아직 써본적 없지만 메모리 스트림의 경우 데이터를 모두 얻으려면 항상 사용전에 포지션을 0으로 지정해줘야 처음부터 읽거나 쓰지 안그러면 마지막 작업이 있던 위치서부터 쓰거나 읽거나 해서..
|