Создание медиа-визуализации в Silverlight - PullRequest
3 голосов
/ 07 декабря 2009

Я хотел бы создать для некоторых пользовательских эффектов визуализации звуковую волну в Silverlight. В Silverlight 3 есть класс MediaElement, который отлично справляется с воспроизведением звуков и видео.

Однако для визуализации мне понадобится какой-нибудь обратный вызов события с некоторой информацией о воспроизводимом в данный момент сегменте звука. Есть ли у фреймворка некоторая поддержка для достижения этого?

Ответы [ 3 ]

4 голосов
/ 09 декабря 2009

Я хотел то же самое, поэтому я создал именно это. Вы можете увидеть живое демо на http://prefix.teddywino.com/post/SilverlightMediaKitLiveDemo.aspx

Библиотека и демонстрационный исходный код доступны по адресу http://salusemediakit.codeplex.com/ Демонстрация показывает добавленную функцию для изменения необработанных аудиоданных для создания эффектов. В настоящее время работает только с MP3 и находится в стадии разработки

1 голос
/ 07 декабря 2009

Если вы реализуете пользовательский MediaStreamSource, вы можете потенциально проверять / анализировать сгенерированные им данные, но вы сразу же столкнетесь с проблемами потоков пользовательского интерфейса, если попытаетесь обновить пользовательский интерфейс непосредственно из пользовательского MediaStreamSource или наоборот.

Одним из способов заставить это работать может быть реализация пользовательского MediaStreamSource, который записывает (или дублирует?) Дополнительные аудиоданные в потокобезопасный буфер, где ваш пользовательский интерфейс может получить к нему доступ.

1 голос
/ 07 декабря 2009

К сожалению, это невозможно в Silverlight, если вы не пройдете весь путь и не создадите свой собственный MediaStreamSource для самостоятельного декодирования аудио (например, из MP3).

Можете ли вы избежать обмана? Многие веб-плееры демонстрируют фальшивый графический эквалайзер, в котором во время воспроизведения просто появляются полосы вверх и вниз. Кажется, я помню, что MySpace и SoundClick использовали для этого (возможно, по-прежнему).

...