6

我是一个 Windows 8 Metro 应用程序 (C#/XAML):我怎样才能触发两次相同的音效,以便它同时播放。

第二场比赛应该在第一场比赛结束之前开始。

相关问题是:

同时播放两个声音 c#同时播放两个声音

我为 XNA 找到了这个类,它可以满足我的需求,但在 Metro 下不可用:http: //msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundeffectinstance.aspx

4

1 回答 1

17

只需为每个音效创建一个单独的媒体元素。

(不确定我每次都需要重新定位文件)

  public async void PlayLaserSound()
    {
        var package = Windows.ApplicationModel.Package.Current;
        var installedLocation = package.InstalledLocation;
        var storageFile = await installedLocation.GetFileAsync("Assets\\Sounds\\lazer.mp3");
        if (storageFile != null)
        {
            var stream = await storageFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
            MediaElement snd = new MediaElement();
            snd.SetSource(stream, storageFile.ContentType);
            snd.Play();
        }
    }
于 2012-06-09T12:54:54.770 回答