通过点击画布在Windows Phone 7.1中播放声音效果

时间:2013-07-19 22:15:41

标签: c# windows-phone-7

我正在使用Windows Phone sdk 7.1创建一个简单的应用程序,每当用户点击画布时我都需要播放一个简短的声音效果。如何在画布的Tap事件或任何其他控件中添加此未来?

我所知道的是项目文件夹中文件的Uri

"/TestApp;component/Resources/Untitled.wma"

4 个答案:

答案 0 :(得分:2)

最简单的方法是使用PhoneyTools中的SoundEffectPlayer。在你的班级中宣布它为

SoundEffectPlayer _player = null;

使用

初始化它
var resource = Application.GetResourceStream(new Uri("/TestApp;component/Resources/Untitled.wma", UriKind.Relative));
var effect = SoundEffect.FromStream(resource.Stream);
_player = new SoundEffectPlayer(effect);

然后简单地调用

_player.Play();

答案 1 :(得分:1)

我发现以下解决方案最适合播放声音通知。它还播放.WMA文件。

public static void PlayMessageFailedSound()
    {
        var s = Song.FromUri("MessageFailed", new Uri(@"Resources/Alert_nudge.wma", UriKind.Relative));
        FrameworkDispatcher.Update();
        MediaPlayer.Play(s);
    }

答案 2 :(得分:0)

您还可以添加媒体元素控件,将其源属性设置为您的文件,然后在tap事件处理程序中调用player.Play()

答案 3 :(得分:-1)

好吧,我想出了正确的方法:

private void PlayDuuuu()
{
    StreamResourceInfo stream = Application.GetResourceStream(new Uri("/AppName;component/Untitled.wav", UriKind.Relative));
    SoundEffect soundeffect = SoundEffect.FromStream(stream.Stream);
    SoundEffectInstance soundInstance = soundeffect.CreateInstance();
    FrameworkDispatcher.Update();
    soundInstance.Play();
}

另外我发现声音文件不能是WMA格式......