如何使用MediaElement播放音频异步



我相信我想要做的是异步播放音频。我正在为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() };
}

最新更新