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並不是爲此而設計的。