2013-10-31 3 views
2

시스템에서 모든 캡쳐 장치를 열거하고 싶은 C 프로그램을 작성 중입니다. 실제로는 세 개의 웹캠과 "통합 된"마이크가 있습니다. 동시에 모든 것을 캡처 할 수 있습니다.캡쳐 ALSA 장치 열거 및 캡쳐

나는 snd_device_name_hint()를 사용하여 모든 PCM 장치를 열거하고 snd_device_name_get_hint()를 사용하여 캡처를 지원하는지 확인하기 위해 "IOID"를 결정하는 데 성공했습니다. 하지만 지금, 어떻게 캡처 할 수 있도록 snd_pcm_open()으로 관련 장치를 열 수 있습니까? "전환율"이 많은 시스템에 과부하를 걸지 않으려면 "hw"인터페이스를 사용하고 싶습니다. 따라서 HW 지원 샘플링 빈도를보고하는 방법이 있는지 알고 싶습니다.

감사합니다.

답변

3

snd_device_name_hint()은 동일한 하드웨어 장치 (예 : plughwhw)에 대해 여러 개의 장치 이름을 반환 할 수 있습니다. 단일 하드웨어 장치 (예 : null 또는 PulseAudio/Jack/Bluetooth 장치)에 해당하지 않는 장치도 반환 할 수 있습니다.

하드웨어 장치를 열거하려면 snd_card_next()snd_ctl_pcm_next_device() (예를 들어 재생 소스 코드 참조)을 호출하십시오.

샘플 속도가 지원되는지 확인하려면 snd_pcm_hw_params_test_rate()으로 전화하십시오.

+0

사실 나는이 페이지를 찾았습니다. http://home.roadrunner.com/~jgglatt/tech/aplay.htm 저자는 모든 카드, 장치 및 하위 장치를 스캔하는 방법에 대해 자세히 설명합니다. 속성을 설정하는 방법. –