我是一个完全的WPF初学者,并有一个应用程序,使用StoryBoard播放的声音。
public void PlaySound()
{
MediaElement m = (MediaElement)audio.FindName("MySound.wma");
m.IsMuted = false;
FrameworkElement audioKey = (FrameworkElement)keys.FindName("MySound");
Storyboard s = (Storyboard)audioKey.FindResource("MySound.wma");
s.Begin(audioKey);
}
<Storyboard x:Key="MySound.wma">
<MediaTimeline d:DesignTimeNaturalDuration="1.615" BeginTime="00:00:00" Storyboard.TargetName="MySound.wma" Source="Audio\MySound.wma"/>
</Storyboard>我有一个可怕的滞后,有时需要10秒才能播放声音。我怀疑这与这样一个事实有关,即无论我等待多长时间-声音直到我离开函数之后才会播放。我不明白。我调用Begin,但什么也没有发生。有没有办法用可以立即播放、没有延迟的东西来替换这个方法或StoryBoard对象?
发布于 2010-06-19 06:17:44
我把我的代码改成-
<Button Cursor="Hand" HorizontalAlignment="Left" Margin="70,0,0,0" x:Name="MyButton" Width="286" Content="Hi!" Focusable="False" IsTabStop="False">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.PreviewMouseLeftButtonDown">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard SlipBehavior="Slip" BeginTime="00:00:00">
<MediaTimeline Storyboard.TargetName="MySound_wma" Source="MySound.wma"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Button.Triggers>
</Button>它现在看起来工作得很好,谢谢xD
https://stackoverflow.com/questions/3071155
复制相似问题