如何淡化MediaElement音量由故事板

本文关键字:故事 何淡化 MediaElement | 更新日期: 2023-09-27 17:52:42

这里是我的StoryBoard

    <Storyboard x:Name="SB_BattleSound">
        <DoubleAnimation
            x:Name="BattleSound"
            Duration="0:0:0.5"
            Storyboard.TargetProperty="(MediaElement.Volume)" 
            Storyboard.TargetName="battle" 
            d:IsOptimized="True">
        </DoubleAnimation>
    </Storyboard>

这里是MediaElement

<MediaElement x:Name="battle" Source="Assets/Sounds/battle.mp3" Volume="0.0" IsLooping="True" AutoPlay="True" Height="0" Width="0" />

这里是渐变开始

BattleSound.From = 0.0;
BattleSound.To = 0.8;
SB_BattleSound.Begin();

没有错误,但也没有效果。我猜目标财产是否有问题?

如何淡化MediaElement音量由故事板

你需要在动画上设置EnableDependentAnimation="True"。默认情况下,只有那些系统可以判断不会导致渲染线程和UI线程依赖的动画才会运行。除非应用程序显式地启用了动画属性,否则不会明确地知道这些属性是安全的。

请参阅MSDN上storyboard动画文档中的依赖动画和独立动画了解更多详细信息。

这是我认为你想要的:

<Storyboard x:Name="SB_BattleSound">
    <DoubleAnimation
    x:Name="BattleSound"
    Duration="0:0:0.5"
    Storyboard.TargetProperty="(MediaElement.Volume)" 
    Storyboard.TargetName="battle" 
    EnableDependentAnimation="True" 
    d:IsOptimized="True">
    </DoubleAnimation>
</Storyboard>