2

我正在开发一款游戏,即基于XAML(不是DirectX)的Windows应用商店应用。要播放音效(WAV文件),我使用MediaElement。对于每一个声音效果有一个(或几个)的MediaElement(S)我初始化这样的: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

你能发现任何模式吗?有没有情况下,你只是初始化程序,并做_mediaElement.Play(),你听到点击?或者在发生这种情况之前,您必须播放()少数mediaElements? – 2013-04-04 18:20:25

+0

@ Erti-ChrisEelmaa:我找不到像这样的模式 – 2013-04-05 08:07:13

回答

1

我建议使用XAudio2,SharpDX或MonoGame来获取声音。正如你注意到的,MediaElements并不是为此而设计的。

相关问题