在故事板上播放声音完成

时间:2011-08-10 08:07:18

标签: windows-phone-7 expression-blend

我正在尝试在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>

2 个答案:

答案 0 :(得分:1)

我的MediaElement也遇到了很多问题,因此更喜欢使用以下方法解决这个问题。

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

看看它是否有帮助。

答案 1 :(得分:0)

您的mediaEnded处理程序永远不会被触发,因为媒体永远不会被播放。

在“闪烁”故事板上处理Completed事件。有那个播放声音。然后让mediaEnded处理程序启动下一个stroryboard。

您可能会发现使用C#而不是xaml更容易连接。 (如果你愿意的话,你可以随时改变它。)