Domanda

Voglio sviluppare un editor audio usando Qt. Per questo, ho bisogno di tracciare una forma d'onda del brano musicale che penso dovrebbe essere un appezzamento di ampiezza del picco del suono contro il tempo (per favore correggimi se sbaglio).

Attualmente, ho usato Phonon :: Oggetto di classe di audioUTUTUPUT come un lavello audio e collegato con il mio oggetto Phonon :: MediaObject Class Object per riprodurre il file audio.

Ora, per disegnare la forma d'onda Ho bisogno di conoscere l'ampiezza della traccia audio ad ogni secondo (, o giù di lì) da questo oggetto di utensile in modo da poter disegnare una linea (usando Qpainter) della lunghezza proporzionale alla frequenza del suono in tempi diversiE quindi, ottenere la mia forma d'onda.

Quindi, per favore aiutami su come ottenere l'ampiezza delle tracce audio in tempi diversi.

In secondo luogo, sto usando il modo corretto di tracciare forme d'onda delle tracce audio - tracciando amplititude del suono contro il tempo tracciando linee per oggetto Qpainter su un widget in momenti diversi.

Grazie.

È stato utile?

Soluzione

C'è un codice che fa entrambe le cose che chiedete (calcolo dell'ampiezza del picco e che tracciano le forme d'onda audio) nel Analizzatore di spettro Esempio che spedisce con Qt (nella directory demo / spettro).

Screenshot of Spectrum Analyzer Demo in esecuzione su Symbian http : //labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrrum.png

Questa demo calcola e visualizza anche uno spettro di frequenza. Come sottolinea un altro commentario, questo è distinto da una trama della forma d'onda: lo spettro è un appezzamento di ampiezza contro la frequenza, mentre la forma d'onda traccia l'ampiezza contro il tempo.

La demo utilizza Qtmultimedia anziché Phonon per acquisire e rendere audio. Se sei interessato a riprodurre audio, e non è necessario registrarlo, Phonon potrebbe essere sufficiente, ma tenere presente che il supporto di streaming (I.e. Phonon::MediaSource(QIODevice *)) non è disponibile su tutte le piattaforme. QAudioInput e QAudioOutput d'altra parte sono ben supportati, almeno per i dati audio PCM, su tutta la piattaforma principale mirata da Qt.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top