2010-06-13 5 views
2

나는 뮤직 게임을 개발 중입니다. 그것은 노래하는 것 같지만 노래 대신에 recorder을 재생해야합니다. oFlute이라고하며 초기 개발 단계입니다.리눅스, C + + 오디오 캡처 (마이크 만) 라이브러리

게임에서 나는 마이크 입력을 포착 한 다음 간단한 FFT 분석을 실행하고 결과를 일반적인 레코더의 주파수와 비교하여 재생 된 음을 얻습니다.

처음에는 내가 사용했던 오디오 라이브러리는 RtAudio 이었지만, 왜 내가 PortAudio으로 전환했는지 기억하지 못합니다. 현재 내가 사용하고있는 것입니다. 문제은 때때로 마이크에서 소리가 들리지 않는 것처럼 무작위로 충돌하거나 캡처를 중지합니다.

질문은 Linux에서 마이크 입력을 캡처하는 가장 좋은 옵션은 무엇입니까? 마이크에서 바이트 흐름을 열고 읽고 닫아야합니다. 내가 this guide 및 (취소)를 읽어 봤는데

놀랍게도 말한다 :

내가 PortAudio는 유닉스 운영 체제에 대한 아주 좋은 API는 생각하지 않습니다.

그래서 나에게 무엇을 권하고 싶습니까?

답변

6

PortAudio는 다른 옵션이있는 이상한 선택입니다.

개인적으로 모든 것을 추상화하고 GStreamer를 사용합니다. 오디오는 리눅스 (장기간의 괴로움으로 말하기)에서 끔찍한 엉망이 될 수 있습니다. Gstreamer가이를 처리하게하면 그 사실을 잊어 버릴 수 있습니다. 함께 생각하고 다시 생각할 필요가 없습니다.

OpenAL은 아마도 게임 개발자에게 가장 인기가있을 것이며 대부분의 시스템을 지원해야합니다 (은 PulseAudio로 재미있게 놀고 있습니다).

가장 인기있는 설정 (현재 PulseAudio라고 생각합니다.)을 확실히 개발 했으므로 출시 할 상황에 처하지 않고 작동하지 않는 소리에 대해 신음하는 사람들의 수영장.

PulseAudio에 관한 말도 듣지 마십시오. 새로운 것일 수도 있습니다. 베어 본 ALSA 시스템보다 몇 가지 리소스가 더 많이 필요할 수 있지만 대기 시간 문제가 발생하지는 않을 것입니다. 그것을 제거하는 사람들에게 현대 데스크탑 배포판은 너무 밀접하게 통합되어 있기 때문에 옵션이 아닙니다.

+0

좋아, Gstreamer를 사용해 보겠습니다. –

+0

마지막으로 나는 pulseaudio 간단한 api로 침전하고 그것은 중대한 작동한다. –

+0

Gstreamer는 개발자로서 최고의 선택입니다. 이 프레임 워크에서 CD/DVD 품질의 오디오를 제작할 수 있기 때문입니다. 즉, 48Khz에서 192Khz까지 재생할 수 있습니다. 예, 나는 그것을 배우려고 노력하고 있습니다. – YumYumYum