문제

Qt를 사용하여 오디오 편집기를 개발하고 싶습니다. 이를 위해 음악 트랙의 파형을 플롯해야합니다. 사운드 대 시간의 피크 진폭의 플롯이어야한다고 생각합니다 (내가 잘못한 경우 나를 바로 잡으십시오).

현재, PHonon :: AudioOutput 클래스 오브젝트를 오디오 싱크로 사용하고 내 phonon :: mediaObject 클래스 오브젝트와 함께 오디오 파일을 재생할 수 있습니다.

이제는 파형을 그리려면이 AudioOutput 오브젝트에서마다 오디오 트랙의 진폭을 알아야하므로 다른 시간에 사운드 주파수에 비례하는 길이의 길이의 라인 (Qpainter 사용)을 그릴 수 있습니다.따라서 내 파형을 얻으십시오.

그래서 다른 시간에 오디오 트랙의 진폭을 얻는 방법을 도와주세요.

두 번째로, 오디오 트랙의 파형을 플로팅하는 올바른 방법을 사용합니다. 다른 시간에 QPainter 객체에 의해 라인을 플로팅하여 시간에 대해 소리를 플로팅합니다.

감사합니다.

도움이 되었습니까?

해결책

Qt (데모 / 스펙트럼 디렉토리에서) Qt와 함께 제공되는 스펙트럼 분석기 예제.

Symbian HTTP에서 실행되는 스펙트럼 분석기 데모의 스크린 샷 : //labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrum.png

이 데모는 또한 주파수 스펙트럼을 계산하고 표시합니다. 다른 의견이 지적하기 때문에 파형 플롯과는 별개가됩니다. 스펙트럼은 주파수에 대한 진폭의 플롯이며, 파형은 시간에 대한 진폭을 나타냅니다.

데모는 phonon 대신 qtmultimedia를 사용하여 오디오를 캡처하고 렌더링합니다. 오디오를 재생하고 기록 할 필요가없는 경우, Phonon이 충분할 수 있지만 모든 플랫폼에서 스트리밍 지원 (즉, Phonon::MediaSource(QIODevice *))을 사용할 수 없습니다. 다른 한편으로는 QAudioInputQAudioOutput는 적어도 PCM 오디오 데이터가 QT에 의해 targetted 모든 주 플랫폼에서 잘 지원됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top