Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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# 同步多个媒体项_C# - Fatal编程技术网

C# 同步多个媒体项

C# 同步多个媒体项,c#,C#,我有一个同时播放wmv文件的应用程序——它们都由一个滑块和播放/暂停/停止按钮控制 我使用下面的代码通过滑块控制视频-问题是,只要使用滑块两次或三次或多次,它们就会失去同步。有人知道怎么解决这个问题吗 private void slider1_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e) { videos[0].Position

我有一个同时播放wmv文件的应用程序——它们都由一个滑块和播放/暂停/停止按钮控制

我使用下面的代码通过滑块控制视频-问题是,只要使用滑块两次或三次或多次,它们就会失去同步。有人知道怎么解决这个问题吗

    private void slider1_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
    {

        videos[0].Position = TimeSpan.FromSeconds(slider1.Value);

        foreach (MediaElement elem in videos)
        {
            elem.Position = videos[0].Position;
            elem.Play();
        }
哈哈,问题是视频[0]立即开始播放,甚至在其余元素开始播放之前。所有元素都不会同步,因为您正在调用该位置,然后根据元素逐个播放。请尝试以下方法:

private void slider1_DragCompleted(object sender,     
    System.Windows.Controls.Primitives.DragCompletedEventArgs e)
{
    var realPosition = TimeSpan.FromSeconds(slider1.Value);

    foreach (var elem in videos)
    {
        elem.Position = realPosition;
    }

    foreach (var elem in videos)
    {
        elem.Play();
    }

谢谢你的回复!事实上,我确实希望这些文件一个接一个地开始,并在他们开始保持领先地位时获得第一个视频的当前位置,无论其他视频需要启动多长时间。不幸的是,你的例子似乎并没有让它变得更好。。。