2010-10-26 75 views
18

我正在開發基於Windows 7的Silverlight應用程序開發。我一直無法找到一種方法來以編程方式在Windows 7手機中播放音頻文件。過去幾天我一直在使用Google,但我無法得到任何解決方案。 C#中有一個類SoundPlayer,但我猜它在Windows 7 Phone中不可用。任何人都可以幫忙嗎?在Windows 7中播放音頻文件電話

回答

14

使用Xna播放聲音。您可以從Silverlight應用程序交叉引用XNA不過,用於播放聲音文件,則需要以下內容:

using Microsoft.Xna.Framework; 
using Microsoft.Xna.Framework.Audio 
// ... 
Stream stream = TitleContainer.OpenStream("sounds/bonk.wav"); 
SoundEffect effect = SoundEffect.FromStream(stream); 
FrameworkDispatcher.Update(); 
effect.Play(); 

所有最適合您的應用程序的開發!

+0

哇,這是偉大的。非常感謝vamana :) – Aqueel 2010-10-26 07:41:02

+5

事實並非如此,Windows Phone 7的Silverlight支持音頻播放。請參閱http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement(VS.95).aspx – 2010-10-26 07:57:27

+2

請注意 - 您應該只將SoundEffect用於短片段的聲音,而不適用於背景音樂。爲此,您應該使用MediaElement – 2010-10-26 08:16:23

19

你可以把一個MediaElement的在您的XAML視圖:

<MediaElement 
    x:Name="sound" 
    Source="sound.wma" 
    AutoPlay="False" /> 

然後在後臺代碼:

sound.Play(); 

支持的格式有MP3和WMA。

+1

這一個沒有爲我工作,直到我設置AutoPlay =「真正」。不知道爲什麼。我在xaml中設置了名稱和自動播放,並在代碼中設置了source和sound.play()(因爲我使用它來播放多個聲音),並且它在AutoPlay中不起作用,但它適用於它設置爲true。謝謝。 – 2011-08-30 13:39:39

+1

-1因爲這種方式殺死任何其他的MP3播放+也停止音樂,如果它在設備上播放。這會讓你的WP7應用程序無法通過驗證,如果你沒有明確獲得用戶的許可來關閉它的音樂。因爲這個,我剛剛被拒絕了。目前在WP7平臺上使用壓縮音頻確實沒有好方法。在媒體支持方面,WP7肯定相當薄弱。 – Jonny 2011-08-31 17:04:31

3

如何簡單地使用內置的行爲?

<Button> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="Click"> 
      <eim:PlaySoundAction Source="/Alarm1.wma" Volume="1"/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</Button> 

您需要這兩個命名空間。

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:eim="clr-namespace:Microsoft.Expression.Interactivity.Media;assembly=Microsoft.Expression.Interactions" 
+0

看起來像一個crear解決方案。如果它使用Mediaelement,你會不喜歡? – 2013-06-10 19:42:09