通过敲击画布在windows phone 7.1中播放音效

本文关键字:phone 音效 播放 windows | 更新日期: 2023-09-27 18:24:11

我正在使用windows phone sdk 7.1制作一个简单的应用程序,每当用户点击画布时,我都需要播放一个简短的音效。如何在画布或任何其他控件的Tap事件中添加此future?

我只知道Uri到项目文件夹中的文件:

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

通过敲击画布在windows phone 7.1中播放音效

最简单的方法是使用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();

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

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

您还可以添加一个媒体元素控件,将其源属性设置为文件,然后简单地调用播放器。点击事件处理程序中的Play()

我找到了正确的方式:

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格式。。。