Pregunta

Quiero desarrollar un editor de audio usando Qt.Para esto, necesito trazar una forma de onda de la pista de música que creo que debería ser una gráfica de la amplitud máxima del sonido versus el tiempo (corríjame si me equivoco).

Actualmente, he estado usando el objeto de clase Phonon::AudioOutput como receptor de audio y lo conecté con mi objeto de clase Phonon::MediaObject para reproducir el archivo de audio.

Ahora, para dibujar la forma de onda necesito saber la amplitud de la pista de audio en cada segundo (más o menos) de este objeto AudioOutput para poder dibujar una línea (usando QPainter) de longitud proporcional a la frecuencia del sonido en diferentes momentos y, por lo tanto, obtener mi forma de onda.

Entonces, ayúdenme a saber cómo obtener la amplitud de las pistas de audio en diferentes momentos.

En segundo lugar, ¿estoy usando la forma correcta de trazar formas de onda de pistas de audio: trazar amplitudes de sonido en función del tiempo trazando líneas por objeto QPainter en un widget en diferentes momentos?

Gracias.

¿Fue útil?

Solución

Hay un código que hace las dos cosas que usted pregunta (calcular la amplitud máxima y trazar formas de onda de audio) en el Analizador de espectro ejemplo que viene con Qt (en el directorio demos/spectrum).

Captura de pantalla de la demostración de Spectrum Analyzer ejecutándose en Symbian http://labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrum.png

Esta demostración también calcula y muestra un espectro de frecuencia.Como señala otro comentarista, esto es distinto de un gráfico de forma de onda:el espectro es un gráfico de amplitud frente a frecuencia, mientras que la forma de onda traza amplitud frente a tiempo.

La demostración utiliza QtMultimedia en lugar de Phonon para capturar y renderizar audio.Si solo está interesado en reproducir audio y no necesita grabarlo, Phonon puede ser suficiente, pero tenga en cuenta que la compatibilidad con streaming (es decir, Phonon::MediaSource(QIODevice *)) no está disponible en todas las plataformas. QAudioInput y QAudioOutput por otro lado, son bien compatibles, al menos para datos de audio PCM, en todas las plataformas principales a las que apunta Qt.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top