2011-08-10 287 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