我正在开发一款游戏,一种基于XAML(不是DirectX)的Windows应用商店应用。要播放音效(WAV文件),我使用MediaElement
。对于每个声音效果,我有一个(或几个)初始化的MediaElement:
StorageFolder folder =
await Package.Current.InstalledLocation.GetFolderAsync(FolderPath);
StorageFile file = await folder.GetFileAsync(FileName);
IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.Read);
_mediaElement = new MediaElement();
_parentPanel.Children.Add(_mediaElement);
_mediaElement.AutoPlay = false;
_mediaElement.SetSource(stream, file.ContentType);
......并且像这样玩:
_mediaElement.Play();
这样做有效,但有时会发出恼人的声音点击,例如this。
奇怪的是点击的一致性如何:有些文件永远不会导致点击,有些文件几乎总是如此,如果他们这样做总是在同一个位置(一个是开头,另一个是接近结束)。 WAV文件中的点击次数不。当我在Audacity中播放时,一切都很好。
这是怎么回事?我该如何解决这个问题?
答案 0 :(得分:1)
我建议使用XAudio2,SharpDX或MonoGame来发声。正如您所注意到MediaElements不适合那样。