2012-03-26 49 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