목록 2는 기본 PCM 장치를 열고 일부 매개 변수를 설정한 다음 대부분의 하드웨어 매개 변수의 값을 표시합니다. 사운드 재생 또는 녹음을 수행하지 않습니다. snd_pcm_open에 대한 호출은 기본 PCM 장치를 열고 액세스 모드를 재생으로 설정합니다. 이 함수는 PCM 스트림을 조작하기 위해 후속 호출에 사용되는 첫 번째 함수 인수에서 핸들을 반환합니다. 대부분의 ALSA 라이브러리 호출과 마찬가지로 함수는 오류 조건을 나타내는 음수 값인 정수 반환 상태를 반환합니다. 이 경우 반환 코드를 확인합니다. 실패를 나타내는 경우 snd_strerror 함수를 사용하여 오류 메시지를 표시하고 종료합니다. 명확성을 위해 예제 프로그램에서 대부분의 오류 검사를 생략했습니다. 프로덕션 응용 프로그램에서는 모든 API 호출의 반환 코드를 확인하고 적절한 오류 처리를 제공해야 합니다. 당신이 뭔가를 배우기 시작할 때 작은 간단한 예를 갖는 것은 귀중한것입니다. 이 공유 주셔서 감사 혼합 및/또는 라우팅 채널에 대 한 존재 하는 플러그인의 숫자. 필요한 매개 변수의 수가 많고 가변적이기 때문에 이를 사용하는 사전 정의된 ALSA 장치가 없습니다. 경로 플러그인은 혼합 매트릭스입니다.

채널을 교환하거나 임의로 할당할 수 있을 뿐만 아니라 혼합할 수도 있습니다. (예시서 서라운드 사운드에 대한 섹션을 참조하십시오.) 멀티 플러그인은 채널을 다시 라우팅 할 수 있지만, 다른 채널이 다른 카드를 통해 재생되도록, 여러 슬레이브 장치를 가질 수 있습니다. (이 것을 시도하면 시간이 지남에 따라 카드가 동기화되지 않는 것을 알 수 있습니다. 전문 오디오 사운드 카드에는 동기화 할 수있는 워드 클럭 입력이 있습니다.) dmix 및 dshare 플러그인은 여러 클라이언트(플레이어 응용 프로그램) 간에 장치를 공유할 수 있도록 허용해야 합니다. dshare 플러그인은 클라이언트 간에 사용 가능한 채널을 분할하고, dmix는 동일한 채널에서 재생되는 모든 것을 함께 혼합합니다. 내 간단한 실험에서, 나는 작동 하도록 dmix 있어 하지 않은, 하지만. 예를 들어 (참고 : 다음과 같이이 명령을 발행해서는 안됩니다, cs4236 드라이버는 옵션이 필요합니다: 당신이 상태에 만족하면, 당신은 그것을 이름을 줄 수 있습니다 („foo“이 예에서) 저장 : 당신이 서라운드 스피커 시스템으로 축복되지 않는 경우? ALSA도 여기에 도움이 될 수 있습니다. 가장 간단한 옵션은 서라운드 채널을 폐기하고 스테레오의 전면 왼쪽 / 오른쪽 신호를 듣는 것입니다. 그러나 그것은 매우 가난하고, 다른 아무것도 당신이 일반적으로 서라운드 채널에 존재하는 잔향을 놓칠 것입니다. 즉 스테레오 채널에 서라운드 채널을 혼합하는 더 나은 방법이있다. 다음은 5.1 사운드의 예입니다: ALSA는 고급 Linux 사운드 아키텍처를 의미합니다.

그것은 커널 드라이버의 집합으로 구성, 응용 프로그램 프로그래밍 인터페이스 (API) 라이브러리 및 리눅스에서 사운드를 지원 하기 위한 유틸리티 프로그램. 이 문서에서는 ALSA 프로젝트 및 해당 소프트웨어 구성 요소에 대한 간략한 개요를 제공합니다. 실험할 수 있는 프로그래밍 예제를 포함하여 ALSA의 PCM 인터페이스를 프로그래밍하는 데 중점을 둡니다. 이제 환경 변수 ALSAPCM을 변경하여 프로그램을 시작할 때 사운드 카드를 선택할 수 있습니다.

alsa 예제