헤드폰에서 들리는 소리를 C/C++ 프로그램의 파일이나 변수에 어떻게 넣나요? 나는 이미지 프레임 버퍼 같은 것을 원합니다. 나의 주요 목표는 사운드를 다른 컴퓨터로 보내는 것이므로 읽기 및 쓰기 권한도 필요합니다. 이 문제를 해결하는 방법을 아는 사람이 있나요?
답변1
다음과 같이 테스트 녹음을 했습니다.
arecord -d 4 out.wav
다음과 같이 사용할 수 있습니다 dd
.
dd bs=1 if=out.wav | aplay
또는 while 루프를 사용하여 매우 불안정한 버퍼링되지 않은 스트림을 사용하십시오.
while read -n 2048 bytes; do
printf "$bytes" | aplay
done < out.wav
netcat
그런 다음 소켓이나 포트로 리디렉션 할 수 있습니다 .
스피커를 통해 재생되는 사운드가 파일에 버퍼링되었을 수 있습니다. 파일이 어디에 있는지는 확실하지 않지만 다른 위치 나 이와 유사한 위치 로 파이프 tail -f
되거나 파이프될 수도 있습니다.cat
netcat
예를 들어 ALSA
pcm을 사용하면 다음과 같습니다.
- http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
- http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html
또한 PulseAudio의 소스 코드를 살펴보거나 실시간 전송 프로토콜(rtp)을 사용해 보세요.