none
Metro C#有没有类似SoundPool播放音效的类或控件 RRS feed

  • 问题

  • 播放背景和长的音乐试了MediaElement,但音效播放如何实现没有方向。有谁知道具体的实现方法。
    2012年6月5日 7:22

答案

  • 参考我给你的回复 http://social.msdn.microsoft.com/Forums/zh-CN/metroappzhcn/thread/62e8e89e-1653-4242-a9a6-b0222535c8ae 中的第二个问题的答复:

    2. 是的, 多个没有问题,按钮音效?你是指播放一些短音,比如叮咚的 wav 声音? 你可以用 MediaElement ,你完全不需要创建一个可视的MediaElement ,就在C#中 new 一个MediaElement对象,然后通过读入声音文件播放即可:

                MediaElement snd = new MediaElement();
                StorageFolder folder = await Package.Current.InstalledLocation.GetFolderAsync("Sounds");
                StorageFile file = await folder.GetFileAsync("beep.wav");
                var stream = await file.OpenAsync(FileAccessMode.Read);
                snd.SetSource(stream, file.ContentType);
                snd.Play();

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 whyuan 2012年6月6日 3:36
    2012年6月5日 17:56
    版主

全部回复

  • 参考我给你的回复 http://social.msdn.microsoft.com/Forums/zh-CN/metroappzhcn/thread/62e8e89e-1653-4242-a9a6-b0222535c8ae 中的第二个问题的答复:

    2. 是的, 多个没有问题,按钮音效?你是指播放一些短音,比如叮咚的 wav 声音? 你可以用 MediaElement ,你完全不需要创建一个可视的MediaElement ,就在C#中 new 一个MediaElement对象,然后通过读入声音文件播放即可:

                MediaElement snd = new MediaElement();
                StorageFolder folder = await Package.Current.InstalledLocation.GetFolderAsync("Sounds");
                StorageFile file = await folder.GetFileAsync("beep.wav");
                var stream = await file.OpenAsync(FileAccessMode.Read);
                snd.SetSource(stream, file.ContentType);
                snd.Play();

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 whyuan 2012年6月6日 3:36
    2012年6月5日 17:56
    版主
  • 方法是OK了,就是代码量要不少。一个音效要开一个对象,写上这么一段,音效一多代码就比较多了。
    2012年6月6日 3:39
  • 封装一个函数不就ok了
    2012年6月6日 4:00
  • 我就是问为什么不是系统封装好,而要开发者自己动脑筋处理。
    2012年6月6日 15:03
  • 过多的API只会造成混乱,这样简单的封装微软就没有考虑再次封装成一个如PlaySound API, 如果这样做了,是接受一个Uri为参数还是流呢? 这些都会有所讨论。 当然,这个只是我目前考虑到的,也许以后也会有相应的改变。

    不过基于你的反馈,我也会收集一下的。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月7日 2:44
    版主