2011-08-10 124 views
2

我想,當一個頁面在WP7被打開來實現這一流程:播放聲音

戲情節串連圖板「眨眼」⇒播放聲音⇒玩故事板「運動」

我增加了聽起來像MediaElement一樣,你可以在代碼中看到。我必須設置AutoPlay =「False」,否則打開頁面時會立即播放聲音。

問題是,當眨眼故事板結束聲音從未播放。我將MediaEnded觸發器添加到MediaElement中,相信它會引用MediaElement中指定的聲音。但它什麼都不做。我試圖在PlaySoundAction的「Source」屬性中再次指定聲音,但它仍然不會播放聲音。我認爲MediaElement的「autoplay = false」是一個罪魁禍首,但我不能像上面描述的那樣把它關掉。

  <MediaElement x:Name="mysound" HorizontalAlignment="Left" Height="0" Source="/mysound.mp3" Stretch="Fill" VerticalAlignment="Top" Width="0" Volume="1" AutoPlay="False"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="MediaEnded"> 
         <eim:ControlStoryboardAction Storyboard="{StaticResource movement}"/> 
        </i:EventTrigger> 
        <eim:StoryboardCompletedTrigger Storyboard="{StaticResource blink}"> 
         <eim:PlaySoundAction Volume="1"/> 
        </eim:StoryboardCompletedTrigger> 
       </i:Interaction.Triggers> 
      </MediaElement> 
+0

我首先想到爲所有事物製作一個大故事板,但似乎沒有在故事板中添加聲音的方法,或者是否存在? – Jonny

回答

0

您的mediaEnded處理程序永遠不會發射,因爲媒體永遠不會播放。

在「眨眼」故事板上處理Completed事件。有沒有播放聲音。然後讓mediaEnded處理程序啓動下一個stroryboard。

您可能會發現在C#中更容易連線,而不是xaml。 (如果你願意,你可以隨時更改它。)

+0

謝謝,故事板中的Completed事件修復了它。 – Jonny

1

我也有很多MediaElement的問題,因此更喜歡使用以下方法來解決此問題。

http://www.dotnetscraps.com/dotnetscraps/post/Play-multiple-sound-files-in-Silverlight-for-Windows-Phone-7.aspx

看看是否有幫助。

+0

這很有趣,我稍後可能會回頭看看,因爲我剛開始使用WP7/Silverlight。 – Jonny

+0

我現在使用該頁面的代碼以及另一個任務 - 它適用於wav文件,任何想法如何使它與mp3或其他格式的工作? – Jonny