我正在尝试在SilverSprite中播放MP3文件,这是超级越野车。我可以使用另一个库在Silverlight中播放MP3吗?
编辑现在有了赏金,我特意找的是:
Content
的内容。 由于SilverSprite中的错误,我无法使用嵌入资源。我的应用程序无法运行。我希望我很清楚我想要找到什么。我想在我自己的游戏引擎中嵌入一些东西,它位于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();
答案 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 library和this one。
对于这类内容,您还可以实现/使用MediaStreamSource
之类的自定义this ...请参阅here和here。
编辑 - 其他一些选择:
通过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这可能会导致您的应用无法通过验证。