Рисование формы волны в C # - PullRequest
1 голос
/ 26 февраля 2011

Я хочу иметь возможность отображать WaveForm в C # вместе с некоторыми простыми функциями, такими как масштабирование и выбор. У меня уже есть данные в виде коротких [] значений амплитуды.

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

Так могу ли я попросить некоторые методы и, возможно, некоторые ссылки, которые помогут? Спасибо!

Ответы [ 2 ]

2 голосов
/ 26 февраля 2011

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

1 голос
/ 26 февраля 2011

Как и на любом графике, вам придется перебирать значения X и выводить соответствующее значение Y из взятого вами образца массива.

Если вы хотите панорамировать аудио влево и вправо, вам придется компенсировать получение данных из массива. Если у вас появится возможность уменьшения масштаба - таким образом, один пиксель на экране соответствует некоторым выборкам (попробуйте начать с целых чисел), вам придется усреднить некоторые значения и затем вывести соответствующее значение.

Если слов PIXEL и SAMPLE еще нет в вашем словаре, прежде чем рисовать форму волны, вы должны ознакомиться с ними, потому что никакое количество чужого кода не научит вас, как это сделать.

...