Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将声音添加到UWP故事板动画_C#_Uwp_Storyboard_Windows 10 Universal - Fatal编程技术网

C# 如何将声音添加到UWP故事板动画

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

我试图用我的动画播放声音。我已经有了一个使用故事板和双动画的工作动画。有人知道如何给它添加声音吗

文档建议使用MediaTimeline类:

有两种方法可以使用 MediaTimeline:

  • 在故事板内部,当MediaTimeline是目标时[sic] 一个MediaElement,一个MediaClock将被创建并分配给 MediaElement的关联播放机。请参见如何:控制MediaElement 以故事板为例

  • 通过显式创建 来自MediaTimeline的MediaClock并将其分配给MediaElement

  • 答案还建议使用MediaTimeline

    问题是UWP的Windows.Media命名空间中不存在MediaTimeline类

    我的动画代码如下所示:

    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();          
    }