나는이 질문을 Qt 포럼에 올렸지 만 대답이 없습니다. 그것이 내가 여기에 게시하는 이유입니다.Qt - 동시에 소리를 녹음하고 재생하는 방법
Qt에서 동시에 사운드를 녹음하고 재생할 수있는 방법이 있는지 알고 싶습니다. 마이크에서 소리를 녹음하고 동시에 스피커/헤드폰에서 소리를 내고 싶습니다.
Qt에서 이것을 수행 할 수있는 방법이 있습니까? 아니면 다른 라이브러리를 사용해야합니까?
솔루션이 크로스 플랫폼 (Windows, Linux 및 Mac을 커버해야 함)이면 좋을 것입니다. 그것이 가능하지 않다면, 리눅스 해결책은 할 것입니다.
나는 그런데 Qt 4.7을 사용하고 있습니다.
내 최신 구현이 here 주어집니다
편집. QIODevice의 하위 클래스를 만들고 writeData 및 readData 메서드를 다시 구현하여 순환 버퍼로 읽기 및 쓰기를 수행 할 수 있도록했습니다. 나는 this suggestion에 따라 이것을했다.
가 는오디오 데이터가 충분히 빠른 속도로 오디오 장치에 공급되지 않는
I 적용한 - QAudioOutput 인스턴스 this documentation에 따른 의미 Underrun Error
대향 때문에 코드는 작동하지 않는다 일시적으로이 문제를 해결하기위한 해킹. outputStateChanged
메서드에서 출력 상태가 IDLE
으로 변경되었는지 확인하고 있는데 있으면 공용 버퍼를 지정하여 start()
메서드를 다시 호출합니다. 나는 이것을 정말로 영구적 인 해결책으로 사용하고 싶지 않습니다. 왜냐하면 그것은 정말로 해키 한 느낌이 들며 그 이유를 제대로 조사하지 않고 오류를 삼키기 때문입니다.
이 문제를 해결하려면 어떻게해야합니까?
또한이 모듈을 충분히 이해하지 못 했으므로 Phonon을 사용하여이 문제를 해결하려고했지만 실패했습니다.
@BrianRoach : @BrianRoach : 시작 방법을 찾을 수 없어서 아무 것도 시도하지 않았습니다. 나는 사운드 입력 usinq QAudioInput을 취할 수 있고 QAudioOutput을 사용할 수있는 사운드를 재생할 수 있다는 것을 알고있다.하지만이 둘 모두는 파일에서 작동한다. 즉, QAudioInput은 입력을 파일에 저장하고 QAudioOutput은 그 파일에서 사운드를 재생한다. 이 접근법은 전이중 시나리오에서 반드시 작동하지 않을 것입니다. 이전 답변 중 일부를 찾았지만 모두 꽤 오래되었고 openAL, portAudio 등과 같은 다른 라이브러리를 사용하도록 제안했습니다.Qt 라이브러리를 사용하는 솔루션이 있는지 알고 싶었습니다. –