Вопрос

Я хочу разработать аудиоредактор, используя Qt. Для этого мне нужно построить сигнал музыкальной треки, который, я думаю, должен быть сюжетом пиковой амплитуды звука против времени (пожалуйста, поправьте меня, если я ошибаюсь).

В настоящее время я использовал объект класса Class Phonon :: AudioOutput в качестве аудиомота и подключил его с помощью объекта класса Phonon :: MediaObject для воспроизведения аудиофайла.

Теперь, чтобы нарисовать форму волны, мне нужно знать амплитуду звуковой дорожки на каждом секунде (или около того) из этого объекта Audioosutput, чтобы я мог нарисовать строку (с помощью Qpainter) длины пропорционально частоту звука в разное времяИ, следовательно, получить мой волн.

Так, пожалуйста, помогите мне о том, как получить амплитуду аудио треков в разное время.

Во-вторых, я использую правильный способ рисования сигналов звуковых дорожек - головки амплитуд звука против времени путем построения линий с помощью объекта Qpainter на виджете в разное время.

спасибо.

Это было полезно?

Решение

Есть код, который делает обоим тому, о чем вы спрашиваете (вычисляя пиковую амплитуду и построение звуковых сигналов) в Скриншот Scectrum Analyzer Demo работает на Symbian http : //labs.trolltech.com/blogs/wp-content/uploads/2010/05/spectrum.png

Эта демонстрация также рассчитывает и отображает частотный спектр. Как отмечает другой комментатор, это отличается от графика формы волны: спектр представляет собой график амплитуды против частоты, в то время как амплитуда формы волны против времени.

Демо демонстрирует Qtmultimedia, а не фонон для захвата и рендеринга аудио. Если вы заинтересованы только в воспроизведении аудио, и не нужно его записывать, фонон может быть достаточным, но осознавать, что потоковая поддержка (I.E. Phonon::MediaSource(QIODevice *)) недоступна на всех платформах. QAudioInput и QAudioOutput с другой стороны хорошо поддерживаются, по крайней мере, для аудиоданных PCM, на всей основной платформе, предназначенной к Qt.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top