2017-02-18 45 views
0

私はaxWindowsMediaPlayerプレイリストを使用していますが、ビデオの終了後に次の再生を一時停止することなく何らかの問題があります。私は一時停止や停止もします。axWindowsMediaPlayerプレイリストの一時停止(C#)

private void axWindowsMediaPlayer1_MediaChange(object sender, AxWMPLib._WMPOCXEvents_MediaChangeEvent e) 
    { 

     if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded) 
     {axWindowsMediaPlayer1.Ctlcontrols.pause(); }} 

これは何もしませんが、プレイヤーを停止する必要があります。これで何ができますか?また、次のプレイリストファイルAUTOplayingを無効にすることもできます。 Thx助けをたくさん! )(また、私はあなたがaxWindowsMediaPlayer1_PlayStateChangedを使用することを示唆している:

private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) 
{ 
    if (e.newState == 8) 
    { 
     e.Ctlcontrols.pause(); 
    } 
} 

}

UPDATE:

+0

WMPは気まぐれですが、このような「進行状況の変更」イベント(PlayStateChangeも)は独自のUIを更新することのみを目的としていました。プレーヤーの状態を変更するために使用することはできません。イベントが返された後で、コマンドを後で実行する必要があります。特に、フォームのBeginInvoke()メソッドを使用して、Winformsアプリケーションで実行されます。 –

答えて

0

は、私はあなたがさらにメソッドに渡されたオブジェクトと、そのようなPlayStateChangeイベントで作業しなければならないと考えていますこれは問題が発生している場所である可能性があるため、メディアの変更ではなくイベントです。

「8」は「Media Ended」を意味し、別の方法でアクセスする方法を知っていればもちろん可能です。 WMPLib.WMPPlayState.wmppsMediaEndedを使用したい場合は、同じ結果が得られると確信しています。

+0

ありがとう!しかし、あなたはいくつかの追加情報を与えることができますか?私はaxWindowsMediaPlayer1_MediaChangeまたはaxWindowsMediaPlayer1_PlayStateChangeでe.playStateを使用できません。それでは、私はこれをどのような場合に使用できますか? –

+0

私の編集をご覧ください。あなたはe.newStateを使用できるはずです。これはPlayStateChangedイベント内にあります。 –

+0

if(e.newState == 8){}作業は正常ですが、e.Ctlcontrols.pause(); - いいえ。エラーCS1061。 axWindowsMediaPlayer1.Ctlcontrols.pause(); - コンパイルしますが、効果はありません。 –

関連する問題