2010-06-18 99 views
1

我是一個完整的WPF初學者,並有一個使用StoryBoard播放聲音的應用程序。WPF Storyboard延遲播放wma文件

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

我改變了我的代碼 -

<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