0

我需要在WP7 Silverlight應用程序中運行背景音樂。我需要它在頁面之間導航時繼續播放。如何創建背景音樂?

另外我不希望它在播放其他音效時停下來。

回答

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來查看用戶是否在播放音樂。

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/

+0

還需要知道如何做,只要在應用程序運行的背景音樂循環.. – 2012-07-09 09:39:42