"/dev/audio"를 읽는 것과 현대적으로 동등한 것은 무엇입니까?

"/dev/audio"를 읽는 것과 현대적으로 동등한 것은 무엇입니까?

최근에 나의 믿음직한 가정용 컴퓨터가 10년 만에 사망했습니다. 이후의 업그레이드(SuSE 10에서 OpenSuSE 12.3으로)는 나에게 문화적 충격이었습니다. 제가 모아 놓은 편리한 단축키와 유틸리티가 더 이상 작동하지 않았기 때문입니다. 오늘 나는 음성 입력을 다시 작동시키려고 노력했습니다.

나는 한 번은 사운드 카드의 라인 입력을 통해 지역 라디오 방송국의 심야 쇼를 녹음한 적이 있습니다. 이 작은 유틸리티는 /dev/audio단지 열어서 ioctl을 수행한 다음 바이트를 읽고 WAV 파일에 쓰기만 했습니다. libsndfile을 사용하여). 화려할 것도 없고 N초 동안 소리를 녹음하고 작동하는 아주 작은 "자동 녹음" 유틸리티일 뿐이며, cron프런트엔드도 없고 X도 필요 없으며 문자 그대로 로그인할 필요도 없습니다. (원래 xawtv 에서 수정되었습니다 record.c.)

이제 이것은 더 이상 작동하지 않습니다. 내 사운드 카드가 구성되어 있지만 더 이상 이 도구를 사용하여 사운드를 녹음할 수 없습니다. 실제로는 더 이상 불가능한 것 같습니다 /dev/sound! 내가 아는 한, 2004년에도 그것은 거의 지원되지 않는 레거시 기능이었고 모든 멋진 사람들은 더 멋지고 더 강력한 ALSA 인터페이스에 대해 프로그래밍해야 했습니다.

사운드 장치에서 빠르게 입력을 얻기 위해 현재 권장되는 방법은 무엇입니까? 어떻게든 가장을 다시 활성화할 수 있나요 /dev/sound? 나는 X 세션을 제공하거나 한밤중에 버튼을 누르도록 요구하지 않는 한 제3자 프로그램도 이 작업을 수행할 수 있다고 생각합니다.

답변1

사운드 스택 개발자들이 저를 예상하고 저와 같은 상황에 대한 해결 방법을 특별히 작성했다는 사실이 밝혀졌습니다. 처음에는 찾을 수 없었습니다.

오스원하는 것을 정확히 수행합니다. 를 미리 로드한 libaoss.so다음 다른 명령줄을 실행합니다. 그런 다음 를 보고 /dev/dspioctl/읽기/쓰기가 가능합니다. 예를 들어 대신에

autorecord -a -t -d 300 -o violin_concerto 

설명하다

/usr/bin/aoss autorecord -a -t -d 300 -o violin_concerto 

오래된 도구를 예전처럼 작동하게 만드세요.

또 다른 방법은 해당 시뮬레이션 커널 모듈을 로드하는 것입니다.실제 /dev/dsp심지어 /dev/audio:

# modprobe snd_pcm_oss
# modprobe snd_seq_oss
# modprobe snd_mixer_oss

(물론 책임감 있고 미래 지향적으로 해야 할 일은 자라서 ALSA와 펄스오디오 프로그래밍을 배우고 이러한 오래된 도구를 현대적이고 보다 정교한 사운드 API로 포팅하는 것입니다. 하지만 요즘에는 시간이 없습니다. 도구 단조를 해본 적이 있음)

관련 정보