【问题标题】:How to create a background music?如何制作背景音乐?
【发布时间】:2012-07-08 14:37:32
【问题描述】:

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

我也不希望它在播放另一个音效时停止。

【问题讨论】:

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


    【解决方案1】:

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

    创建项目后,在项目中包含您的声音文件,例如“7am.mp3”并将其构建操作设置为“内容”。

    在 GamePage.xaml.cs 中创建歌曲:

    Song music;
    

    现在在 OnNavigatedTo() 中添加这个:

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

    在此之后,您可以将这首歌播放为:

    MediaPlayer.Play(music);
    

    您可以设置音量等。

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

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

    【讨论】:

      【解决方案2】:

      解决方案是引用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/

      【讨论】:

      • 仍然需要知道如何让背景音乐循环播放,只要应用程序正在运行..
      猜你喜欢
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多