Windows Phone 7 播放鈴聲

來源:互聯網
上載者:User

在Silverlight 4和WP7的程式中需要使用XNA介面實現在背景播放鈴音,不再依賴某個xaml頁面。

首先在項目中添加Microsoft.Xna.Framework.dll的引用。

在添加完引用後,接下來在代碼檔案上方使用using添加下面兩個命名空間:

using Microsoft.Xna.Framework.Audio;

using Microsoft.Xna.Framework;

該類只支援WAV檔案,所以只能用WAV格式的音樂,這點非常不方便,可WP7內建的聲音都是wma的,目前我還沒搞清楚其內部是怎麼實現。

將WAV音頻檔案添加到項目。

然後就可以通過代碼實現聲音的播放了,代碼如下:

 1 public class RingPlayerControl 2 { 3   private static readonly Object lockThis = new Object(); 4   private static IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings; 5  6   public static void Play() 7   { 8     lock (lockThis) 9     {10       try11       {12           Stream stream = TitleContainer.OpenStream("Sounds/DOORBELL.WAV");13         SoundEffect effect = SoundEffect.FromStream(stream);14         FrameworkDispatcher.Update();15         effect.Play();16       }17 18       catch (System.Exception ex)19       {20         String strError = ex.ToString();21       }22 23     }24 25   }26 27 }

XNA提供的TitleContainer.OpenStream方法可以用來讀取安裝資料夾裡的內容。

這樣就可以播放聲音了,但我感覺即使是WAV格式的鈴聲也有嚴格的要求,一開始找了幾個wav的,程式報錯:Ensure that the specified stream contains valid PCM mono or stereo wave data.可能是這個wav的編碼在手機上無法識別,後來從Windows Mobile6.1的手機程式裡找了個wav,就很好使了。這個問題在這裡有人說過:

http://forums.create.msdn.com/forums/p/82199/496063.aspx

Mango版支援後台播放音樂,參考:http://msdn.microsoft.com/en-us/library/hh202978(v=VS.92).aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.