Silverlight MP3播放库

Silverlight MP3播放库,silverlight,audio,Silverlight,Audio,我正在尝试用SilverSprite播放MP3文件,这是一款超级童车。在Silverlight中播放MP3有没有其他的库 编辑:现在有了悬赏,我特别想要的是: 与SL 3-4合作 是一个单独的项目/DLL 将在SilverSprite项目中工作(我在SS上使用一个层)——没有GUI,只有我可以调用的方法来播放声音 使用构建操作设置为content的内容由于SilverSprite中存在错误,我无法使用嵌入式资源。我的应用程序将无法运行 播放MP3 可以同时播放多个音频文件 我希望我要找的东西

我正在尝试用SilverSprite播放MP3文件,这是一款超级童车。在Silverlight中播放MP3有没有其他的库

编辑:现在有了悬赏,我特别想要的是:

  • 与SL 3-4合作
  • 是一个单独的项目/DLL
  • 将在SilverSprite项目中工作(我在SS上使用一个层)——没有GUI,只有我可以调用的方法来播放声音
  • 使用构建操作设置为
    content
    的内容由于SilverSprite中存在错误,我无法使用嵌入式资源。我的应用程序将无法运行
  • 播放MP3
  • 可以同时播放多个音频文件
我希望我要找的东西很清楚。我想在我自己的游戏引擎中嵌入一些东西,它位于SilverSprite之上。我将提供XAP中的所有音频文件。(SilverSprite音频已完全损坏,无法正常工作。)

更新:我可能想做的具体方向是实例化一个新的MediaElement,设置源代码并播放它。下面我有一些代码,但是a)
NaturalDuration.TimeSpan.totalmillizes
报告0,b)
.mediaopend
从不触发

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();

有关与更新方法非常类似的一些工作代码,请参见。请注意,
MediaElement
需要添加到控件/组件树中-请参阅

对于您的需求,有两个非常有趣的选项是和

对于这类东西,你也可以实现/使用一个自定义的,比如。。。见和

编辑-其他一些选项:

通过XNA并行播放多个声音请参阅

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

MediaPlayer.Stop();
MediaPlayer.Volume = 1;
MediaPlayer.Play(Song.FromUri("TestSound", new Uri("/Content/Audio/chimes.mp3", UriKind.Relative)));
对于同时播放多个声音文件:


IIRC这可能会导致您的应用程序验证失败。

有关与更新方法非常类似的一些工作代码,请参阅。请注意,
MediaElement
需要添加到控件/组件树中-请参阅

对于您的需求,有两个非常有趣的选项是和

对于这类东西,你也可以实现/使用一个自定义的,比如。。。见和

编辑-其他一些选项:

通过XNA并行播放多个声音请参阅

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

MediaPlayer.Stop();
MediaPlayer.Volume = 1;
MediaPlayer.Play(Song.FromUri("TestSound", new Uri("/Content/Audio/chimes.mp3", UriKind.Relative)));
对于同时播放多个声音文件:


IIRC这可能会导致您的应用程序验证失败。

我会查看链接。哪个验证失败?我没有组件树;我的游戏只有一个组件。应用程序验证不是问题,因为它可以通过web进行播放。你对我的消息来源感兴趣吗?我尝试了上面的几个来源,但要么得到一个空的资源,要么什么也并没有发生。@ashes999我可以尝试(取决于有多少来源),谢谢你们的帮助。这些选项都不起作用;我认为问题在于我的XNA实现(SilverSprite)是。。。。所以方法不存在或不起作用。干杯,我感谢你为研究所有这些选项所付出的努力。也许有一天它们会对某些人有用。我来看看链接。哪个验证失败?我没有组件树;我的游戏只有一个组件。应用程序验证不是问题,因为它可以通过web进行播放。你对我的消息来源感兴趣吗?我尝试了上面的几个来源,但要么得到一个空的资源,要么什么也并没有发生。@ashes999我可以尝试(取决于有多少来源),谢谢你们的帮助。这些选项都不起作用;我认为问题在于我的XNA实现(SilverSprite)是。。。。所以方法不存在或不起作用。干杯,我感谢你为研究所有这些选项所付出的努力。也许有一天他们会对某个人有用。