为什么这个音频不会在Windows Phone 7中播放?

时间:2012-11-26 21:57:44

标签: c# windows-phone-7 audio invalidoperationexception soundeffect

我正在尝试在Silverlight for Windows Phone 7应用中播放音频。我有一个MP3音频文件,其构建操作设置为资源。要播放声音,我使用:

SoundEffectInstance sfi = null;
...
        Stream source = Application.GetResourceStream(new Uri("/Bird Calls;component/Crow.mp3", UriKind.Relative)).Stream;
        Microsoft.Xna.Framework.Audio.SoundEffect effect = SoundEffect.FromStream(source);
        sfi = effect.CreateInstance();
        sfi.Play();

此代码在SoundEffect.FromStream方法中抛出InvalidOperationException。

2 个答案:

答案 0 :(得分:6)

SoundEffect无法播放mp3文件。如果你想播放mp3文件,你应该像那样使用MediaPlayer

private Song song;


string musicUrl = string.Format("/Bird Calls;component/Crow.mp3");
song = Song.FromUri("name", new Uri(musicUrl, UriKind.Relative));
FrameworkDispatcher.Update();
MediaPlayer.IsRepeating = true;
MediaPlayer.Play(song);

答案 1 :(得分:1)

自己想出来。这个问题的解决方案是使用.wav文件而不是.mp3文件。