Silverlight MP3播放库

时间:2011-09-20 18:45:00

标签: silverlight audio

我正在尝试在SilverSprite中播放MP3文件,这是超级越野车。我可以使用另一个库在Silverlight中播放MP3吗?

编辑现在有了赏金,我特意找的是:

  • 适用于SL 3-4
  • 是一个单独的项目/ DLL
  • 将在SilverSprite项目中工作(我在SS上使用一层) - 没有GUI,只是我可以调用来播放声音的方法
  • 使用构建操作设置为Content的内容。 由于SilverSprite中的错误,我无法使用嵌入资源。我的应用程序无法运行。
  • 播放MP3。
  • 可以同时播放多个音频文件

我希望我很清楚我想要找到什么。我想在我自己的游戏引擎中嵌入一些东西,它位于SilverSprite之上。我将提供XAP中的所有音频文件。 (SilverSprite音频非常破碎,不起作用。)

更新:我可能想要介绍的具体方向是实例化新的MediaElement,设置源并播放它。我在下面有一些代码,但a)NaturalDuration.TimeSpan.TotalMilliseconds报告0,b).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 个答案:

答案 0 :(得分:1)

对于某些与您的更新方法类似的工作代码,请参阅http://www.wiredprairie.us/blog/index.php/archives/577。请注意,MediaElement需要添加到控件/组件树中 - 请参阅http://www.michaelsnow.com/2010/12/17/playing-sound-effects-on-windows-phone-7/

符合您要求的两个非常有趣的选项是this librarythis one

对于这类内容,您还可以实现/使用MediaStreamSource之类的自定义this ...请参阅herehere

编辑 - 其他一些选择:

通过XNA并行播放多个声音,请参阅http://create.msdn.com/en-US/education/catalog/sample/silverlightsound

的源代码

例如,使用XNA 4中的MediaPlayer类:

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

同时播放多个声音文件:

IIRC这可能会导致您的应用无法通过验证。