2012-03-26 46 views
0

我有一个应用程序可以同时播放wmv文件 - 它们全部由一个滑块和播放/暂停/停止按钮一起控制。同步多个MediaItems

我正在使用下面的代码来通过滑块控制视频 - 问题是,只要使用滑块两次或三次,它们就会不同步。有人知道如何解决这个问题吗?

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

LOL,问题是videos[0]开始立即播放,甚至在其余元件开始播放。没有任何元素会同步,因为您之后会逐个元素地调用Position,然后Play。试试这个:

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

非常感谢您的回复!实际上,我确实希望文件能够逐一开始播放,并在开始播放第一个视频时获得当前位置(无论其他视频需要多长时间启动),才能将其保留为“领导者”。不幸的是,你的例子似乎并没有让它变得更好...... – Alex 2012-03-26 17:22:57