2012-03-26 14 views
0

私はwmvファイルを同時に再生するアプリケーションを持っています。それらはすべて、1つのスライダと再生/一時停止/停止ボタンで一緒に制御されています。複数のMediaItemを同期

私はスライダーを介してビデオを制御するために以下のコードを使用しています - 問題は、スライダーを2〜3回または頻繁に使用するとすぐに同期が外れることです。誰でもこの問題を解決する方法を知りましたか?

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

実際には、ファイルが1つ1つ起動して、開始時に最初のビデオの現在の位置を取得することを望んでいました(他のビデオをどれだけ長く開始する必要があっても "リーダー"として維持する)。残念ながら、あなたの例はそれをより良くするようには見えません... – Alex

関連する問題