我相信我想要做的是异步播放音频。我正在为Windows 8编写一个应用程序,它要求每次按下按钮都要播放音频文件。我遇到的问题是,文件会播放,但如果它还没有播放完,你按下按钮,它就不会再次响起。
XAML
<MediaElement x:Name="KickBasicAudio"
Source="Assets/Drums/Dance/KickBasic.wav"
AutoPlay="False" />
<Button Content="KICK" ClickMode="Press" Click="KickBasicPlay"/>
C#
private void KickBasicPlay(object sender, RoutedEventArgs e)
{
KickBasicAudio.Play();
}
在这种情况下,SoundPlayer
可能是更好的选择,因为这允许Asyc播放
using System.Media; //The reference needed.
private SoundPlayer _player = new SoundPlayer("file");
private void KickBasicPlay(object sender, RoutedEventArgs e)
{
_player.Play();
}
我想你需要一个后台工作线程来做这件事。试试这个。
using System.ComponentModel; //This is the reference needed.
private void KickBasicPlay(object sender, RoutedEventArgs e)
{
BackgroundWorker thread = new BackgroundWorker();
thread.DoWork += (sender, e) => { KickBasicAudio.Play() };
}