안녕하세요.
/dev/audio(혹은 /dev/dsp)를 open하여 sound를 마이크를 통하여 녹음하고
녹음 받은 sound를 playback하려고 합니다.
다음과 같은 순서로 했습니다.
1. /dev/audio를 O_RDONLY로 open한다.
2. 1에서 생긴 file descriptor를 read하여 sound를 메모리에 저장한다.
3. file descriptor를 close한다.
4. /dev/audio를 O_WRONLY로 open한다.
5. 메모리에 저장된 sound를 4에서 생긴 file descriptor에 write한다.
6. file descriptor를 close한다.
위와 같이 sound를 받고 playback하면 아무 잡음없이 깨끗하게,
잘 들립니다.
그런데 /dev/audio를 O_RDWR(read and write)모드로 open한다음
ioctl을 full duplex mode로 설정해 주고,
sound를 read하고 write하면 잡음이 발생합니다.
꼭 full duplex mode로 설정하지 않더라도,
위에서 말한 6단계중 1,4단계에서 O_RDONLY/O_WRONLY를
O_RDWR로 open하여도 치~치~하는 균일한 잡음이 발생합니다.
O_RDWR로 /dev/audio를 open하면 언제나 잡음이 생기는 건가요?
이걸 반드시 없애야 하는데, 방법이 있는지 궁금합니다.
ps) 제가 사용하는 사운드 카드는 SB16입니다.