MP3-проигрыватель Silverlight - PullRequest
       2

MP3-проигрыватель Silverlight

1 голос
/ 20 сентября 2011

Я пытаюсь воспроизвести MP3-файлы в SilverSprite, и он супер глючит.Есть ли альтернативная библиотека, которую я могу использовать для воспроизведения MP3 в Silverlight?

Редактировать: Теперь, когда есть награда, я специально ищу что-то, что:

  • Работает с SL 3-4
  • Это отдельный проект / DLL
  • Будет работать в проектах SilverSprite (я использую слой поверх SS) - без графического интерфейса, только методыЯ могу позвонить, чтобы воспроизводить звуки
  • Работает с контентом, для которого для действия сборки установлено Content. Я не могу использовать встроенные ресурсы из-за ошибки в SilverSprite.Мое приложение не запускается.
  • Воспроизведение MP3.
  • Может воспроизводить несколько аудиофайлов одновременно

Надеюсь, понятно, что я пытаюсь найти,Я хотел бы что-то, что я могу встроить в свой собственный игровой движок, который находится поверх SilverSprite.Я предоставлю все аудио файлы в XAP.(Аудио SilverSprite довольно сломано и не работает.)

Обновление: Конкретное направление, в котором я, вероятно, хотел бы пойти, - создать новый MediaElement, установить источник иСыграй.У меня есть код ниже, но а) NaturalDuration.TimeSpan.TotalMilliseconds сообщает 0, и б) .MediaOpened никогда не срабатывает.

MediaElement m = new MediaElement();
m.Source = new Uri("Content/Audio/chimes.mp3", UriKind.Relative);
m.Stop(); // useless?
//m.SetSource(new FileStream("Content/Audio/chimes.mp3", FileMode.Open)); // "Permission denied" exception, is it even finding the file?
m.Volume = 1; // Max
m.Position = TimeSpan.FromMilliseconds(0);
while (m.CurrentState != System.Windows.Media.MediaElementState.Closed)
{
    Thread.Sleep(10);
}
m.MediaOpened += (sender, e) =>
{
    m.Play();
};
m.Play();

1 Ответ

1 голос
/ 16 ноября 2011

Для некоторого рабочего кода, довольно похожего на ваш обновленный подход, см. http://www.wiredprairie.us/blog/index.php/archives/577.Помните, что MediaElement необходимо добавить в дерево элементов управления / компонентов - см. http://www.michaelsnow.com/2010/12/17/playing-sound-effects-on-windows-phone-7/.

Два очень интересных варианта для ваших требований: эта библиотека и эта .

Для такого рода вещей вы также можете реализовать / использовать пользовательский MediaStreamSource такой как этот один ... см. здесь и здесь .

EDIT - некоторые другие опции:

Воспроизведение нескольких звуков параллельно через XNA, см. исходный код по адресу http://create.msdn.com/en-US/education/catalog/sample/silverlightsound

Использование MediaPlayerкласс из XNA 4, например:

MediaPlayer.Stop();
MediaPlayer.Volume = 1;
MediaPlayer.Play(Song.FromUri("TestSound", new Uri("/Content/Audio/chimes.mp3", UriKind.Relative)));

Как для воспроизведения нескольких звуковых файлов одновременно:

IIRC - это то, что может привести к сбою проверки вашего приложения.

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