如何制作背景音乐?

时间:2012-07-08 14:37:32

标签: silverlight windows-phone-7 mediaelement background-music

我需要在WP7 Silverlight应用程序中运行背景音乐。我需要它在页面之间导航时继续播放。

此外,我不希望它在播放另一种音效时停止。

2 个答案:

答案 0 :(得分:0)

您可以使用MediaElement执行此操作或使用XNA SoundEffects,但我有更好的解决方案。为您的应用程序创建SilverXNA项目。你并不真的需要使用XNA,但这个项目会自动创建一些让生活更轻松的东西。您可以使用它来构建一个没有问题的Silverlight应用程序。

创建项目后,将项目中的声音文件说成" 7 am.mp3"并将其构建动作设置为"内容"。

在GamePage.xaml.cs中创建一首歌:

Song music;

现在在OnNavigatedTo()中添加它:

music = contentManager.Load<Song>("7am");

在此之后你可以播放这首歌:

MediaPlayer.Play(music);

您可以设置音量等。

那么,为什么这种做法呢?好吧,因为根据技术认证指南,如果用户已经在收听歌曲并且SoundEffects类不能用于背景音乐,则不能打断用户,因此这种方法是获得这种灵活性的唯一方法。

您可以使用MediaPlayer.GameHasControl查看用户是否正在播放音乐。

答案 1 :(得分:0)

解决方案是引用Microsoft.Xna.Framework,然后使用以下函数:

public static void PlaySound(string soundFile)
{
    var stream = Application.GetResourceStream(new Uri(soundFile, UriKind.Relative)).Stream;

    if (stream != null)
    {
        var effect = Microsoft.Xna.Framework.Audio.SoundEffect.FromStream(stream);
        Microsoft.Xna.Framework.FrameworkDispatcher.Update();
        effect.Play();
    }
}

http://spacemigas.wordpress.com/2011/04/07/overcoming-windows-phone-7-mediaelement-limitations/