QT의 Phonon 구성 요소를 사용하여 C++에서 사용자 상호 작용을위한 사운드를 재생하고 있습니다. 많은 테스트가 끝나면 메인 스레드가 메인 메시지 루프로 돌아갈 때 대기중인 사운드가 재생되기 시작한다는 것을 확인할 수 있습니다. 코드를 오래 처리하면 사운드 재생이 지연됩니다. 지연을 피할 수있는 방법을 찾아야합니다.QT Phonon에서 즉시 사운드 재생 (이벤트 루프를 기다리지 않음)
소리를 별도의 스레드에서 시도했지만 Phonon의 defect은 해당 스레드에서 일부 개체가 생성되지 않도록합니다. 따라서 일부 신호는 항상 주 스레드에 고정되어 있습니다. 간단히 신속하게 이벤트 루프로 돌아
는 몇 가지 이유에 대한 옵션이되지 않습니다 :
- 일부 개체 작품은 단순히 느리고 스레드에서 가속화 또는 쉽게 수행 할 수 없습니다 (데이터베이스 연결 등)
- 포논은 이벤트 그럼에도 불구하고 난 그냥 소리 API의 가장 기본적인 사용 사례를 충당하기 위해 찾고 있어요 포논 신호
방해/차단/빨리 다른 신호를 반환 그렇게하더라도, 다수의 신호를 사용 : 사용자가 somethi 할 때 소리를 내라. 버튼을 클릭하는 것과 같이) 소리를 즉시 재생할 수 있습니다. 확실하게 Phonon에서 어떻게 든 다뤄야 만합니까?
사운드 재생이 실행 된 직후에'QApplication :: processEvents'를 호출 해 볼 수 있습니다 ... – smerlin
Point # 2는 여전히 processEvents를 호출하여 수정할 수 없다는 것을 의미합니다 - 누군가가 Phonon 이벤트/신호. –