C# 如何将声音添加到UWP故事板动画
我试图用我的动画播放声音。我已经有了一个使用故事板和双动画的工作动画。有人知道如何给它添加声音吗 文档建议使用MediaTimeline类: 有两种方法可以使用 MediaTimeline:C# 如何将声音添加到UWP故事板动画,c#,uwp,storyboard,windows-10-universal,C#,Uwp,Storyboard,Windows 10 Universal,我试图用我的动画播放声音。我已经有了一个使用故事板和双动画的工作动画。有人知道如何给它添加声音吗 文档建议使用MediaTimeline类: 有两种方法可以使用 MediaTimeline: 在故事板内部,当MediaTimeline是目标时[sic] 一个MediaElement,一个MediaClock将被创建并分配给 MediaElement的关联播放机。请参见如何:控制MediaElement 以故事板为例 通过显式创建 来自MediaTimeline的MediaClock并将其分配给M
DoubleAnimation animX = new DoubleAnimation();
DoubleAnimation animY = new DoubleAnimation();
animX.Duration = TimeSpan.FromMilliseconds(600);
animY.Duration = TimeSpan.FromMilliseconds(800);
animX.From = pStart.X;
animX.To = pEnd.X;
animY.From = pStart.Y;
animY.To = pEnd.Y;
Storyboard StarStoryboard = new Storyboard();
Storyboard.SetTarget(animX, this.MyImage);
Storyboard.SetTargetProperty(animX, "(Canvas.Left)");
Storyboard.SetTarget(animY, this.MyImage);
Storyboard.SetTargetProperty(animY, "(Canvas.Top)");
StarStoryboard.Children.Add(animX);
StarStoryboard.Children.Add(animY);
在uwp中,应用程序用于控制带有时间轴的动画。但是在uwp中没有MediaTimeLine
用于情节提要
我试图用我的动画播放声音
如果只想在动画中播放声音,可以添加一个。当您开始情节提要
时,通过MediaElement
播放声音,并在情节提要
完成时暂停声音。例如:
XAML代码
<Button
Canvas.Top="250"
Margin="2"
Click="Animation_Begin"
Content="Begin" />
<Canvas>
<Image
x:Name="MyImage"
Width="50"
Height="50"
Source="Assets/caffe1.jpg" />
</Canvas>
<MediaElement
x:Name="mediaforanimation"
AutoPlay="False"
Source="Assets\2.mp3" />
如果这不能满足您的需求,您可以详细说明您实际想要做什么,我们可以尝试uwp中的API来做
Storyboard StarStoryboard = new Storyboard();
public Storyboardbegin()
{
this.InitializeComponent();
StarStoryboard.Completed += StarStoryboard_Completed;
DoubleAnimation animX = new DoubleAnimation();
DoubleAnimation animY = new DoubleAnimation();
animX.Duration = TimeSpan.FromMilliseconds(600);
animY.Duration = TimeSpan.FromMilliseconds(800);
animX.From = 0;
animX.To = 200;
animY.From = 0;
animY.To = 200;
Storyboard.SetTarget(animX, this.MyImage);
Storyboard.SetTargetProperty(animX, "(Canvas.Left)");
Storyboard.SetTarget(animY, this.MyImage);
Storyboard.SetTargetProperty(animY, "(Canvas.Top)");
StarStoryboard.Children.Add(animX);
StarStoryboard.Children.Add(animY);
}
private void StarStoryboard_Completed(object sender, object e)
{
mediaforanimation.Pause();
}
private void Animation_Begin(object sender, RoutedEventArgs e)
{
StarStoryboard.Begin();
mediaforanimation.Play();
}