2016-10-20 43 views
-1

現在、プレイリストから一連のビデオを再生するプログラムがあり、ビデオの再生が完了すると一連の画像が表示されます。私は現在、ビデオが終了するたびにカウントするためにPlayStateChangeイベントを使用していますが、最終ビデオではなく最後のビデオの先頭に画像が表示されます。プレイリストが完全に再生されたときに画像をトリガーする方法が必要です。私はコードを遅らせることさえしようとしましたが、それは私の表示イメージメソッドがうまく動作する原因になります。ここにコードサンプルがありますが、実際に私の質問に答える必要はありません。文の場合は、別のを追加することにより、固定AxWindowsMediaPlayerプレイリストの終わりを検出する方法

private void player_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
    { 
     if (!currSess.playOne) 
     { 
      Console.WriteLine(player.playState); 
      if (e.newState == 8 | e.newState == 9) 
      { 
       if (e.newState == 8) 
       { 
        currSess.playQueue++; 
        Console.WriteLine(currSess.playQueue); 
       } 

      } 

       if (currSess.playQueue+1 > player.currentPlaylist.count -1) 
       { 
       // await Task.Delay(1000); 
        displayImgs(); 
        player.PlayStateChange -= foo; 
        currSess.playQueue = 0; 
       } 
     } 
    } 
+0

なぜ-1?これは私が他のオンラインで見つけることができない有効な質問です。他の同様の質問に対する単一の解決策を見つけられていない。 – Harrison

答えて

0

、最後の映像は、それがレディ状態を想定し、そこに停止します再生が完了した場合になったのは:

if (currSess.playQueue+1 > player.currentPlaylist.count -1) 
       { 
        if (e.newState == 10) 
        { 
         // await Task.Delay(1000); 
         displayImgs(); 
         currSess._timer.start(); 
         Console.WriteLine(currSess._timer); 
         AllowControls(true); 
         allowItems(); 
         player.PlayStateChange -= foo; 
         currSess.playQueue = 0; 
        } 
       } 
関連する問題