我正在開發基於Windows 7的Silverlight應用程序開發。我一直無法找到一種方法來以編程方式在Windows 7手機中播放音頻文件。過去幾天我一直在使用Google,但我無法得到任何解決方案。 C#中有一個類SoundPlayer,但我猜它在Windows 7 Phone中不可用。任何人都可以幫忙嗎?在Windows 7中播放音頻文件電話
回答
使用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();
所有最適合您的應用程序的開發!
你可以把一個MediaElement的在您的XAML視圖:
<MediaElement
x:Name="sound"
Source="sound.wma"
AutoPlay="False" />
然後在後臺代碼:
sound.Play();
支持的格式有MP3和WMA。
這一個沒有爲我工作,直到我設置AutoPlay =「真正」。不知道爲什麼。我在xaml中設置了名稱和自動播放,並在代碼中設置了source和sound.play()(因爲我使用它來播放多個聲音),並且它在AutoPlay中不起作用,但它適用於它設置爲true。謝謝。 – 2011-08-30 13:39:39
-1因爲這種方式殺死任何其他的MP3播放+也停止音樂,如果它在設備上播放。這會讓你的WP7應用程序無法通過驗證,如果你沒有明確獲得用戶的許可來關閉它的音樂。因爲這個,我剛剛被拒絕了。目前在WP7平臺上使用壓縮音頻確實沒有好方法。在媒體支持方面,WP7肯定相當薄弱。 – Jonny 2011-08-31 17:04:31
您將要使用MediaElement。這裏有一個教程
http://create.msdn.com/en-US/education/quickstarts/Video_and_Audio
如何簡單地使用內置的行爲?
<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"
看起來像一個crear解決方案。如果它使用Mediaelement,你會不喜歡? – 2013-06-10 19:42:09
哇,這是偉大的。非常感謝vamana :) – Aqueel 2010-10-26 07:41:02
事實並非如此,Windows Phone 7的Silverlight支持音頻播放。請參閱http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement(VS.95).aspx – 2010-10-26 07:57:27
請注意 - 您應該只將SoundEffect用於短片段的聲音,而不適用於背景音樂。爲此,您應該使用MediaElement – 2010-10-26 08:16:23