WPF Storyboard延迟播放wma文件

时间:2010-06-18 15:53:17

标签: c# .net wpf audio storyboard

我是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对象?

1 个答案:

答案 0 :(得分:1)

我将代码更改为 -

<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