WPF аудио манипуляции - PullRequest
       9

WPF аудио манипуляции

2 голосов
/ 06 октября 2009

Я хочу сделать немного более сложное воспроизведение звука, используя стандартное приложение WPF.

Вот что мне нужно:

  • способность плавно зацикливаться
  • сменить высоту
  • воспроизведение нескольких звуков одновременно

Я знаю, что класс SoundPlayer недостаточен, поскольку он не может воспроизводить несколько звуков одновременно, поэтому я начал изучать класс XNA SoundEffect (и аналогичный), но я не уверен, как именно работает взаимодействие между XNA и WPF.

Может кто-нибудь пролить немного света здесь для меня?

Приветствие Mark

Ответы [ 3 ]

2 голосов
/ 07 октября 2009

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

  1. Создайте производный класс WaveStream, который в своем методе Read возвращается к началу своего исходного потока, когда он заканчивается.
  2. Это ваш самый сложный запрос. Вы хотите, чтобы аудио воспроизводилось быстрее или просто было увеличено его звучание? Взгляните на Skype Voice Changer , чтобы ознакомиться с примером использования NAudio для выполнения DSP со смещением высоты звука в реальном времени.
  3. Используйте WaveMixerStream, чтобы смешать несколько WaveStream вместе.
1 голос
/ 06 октября 2009

Взгляните на библиотеку BASS .

Он имеет оболочку .NET, которая будет работать для WPF и может делать все, что вы ищете. (Хотя цикл требует некоторого кодирования, я думаю, вы можете найти пример этого в их дискуссионных форумах)

0 голосов
/ 08 октября 2009

Так что большое спасибо за библиотеку, помогите всем, но я решил проблему с помощью инструмента XNA XACT и платформы Audio, которая поставляется с XNA.

В итоге я просто смог добавить ссылку на библиотеки XNA .Net и использовать их. Сначала была небольшая путаница, но в конце, пока вы время от времени вызываете Update () для объекта AudioEngine, он работает очень хорошо.

Вы можете установить программируемые переменные в вашем аудио-проекте (в XACT), которым вы вручную управляете с помощью c #, я сделал это, отрегулировав громкость и высоту тона, используя координаты мыши x и y на экране.

Вот ссылка на учебник, который показывает это красиво: http://blogs.msdn.com/coding4fun/archive/2007/04/27/2307521.aspx

- Марка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...