0

aXWindowsMediaPlayerメソッドを使用して、5秒ごとにランダムなビデオ/画像を再生するウィンドウフォームがありますaXWindowsMediaPlayer.Url = <video/image file location>。これは写真には問題なく機能しますが、ビデオが長い場合は、5 秒間しか再生されず、全長は再生されません。短いビデオの場合も同様で、ビデオ全体が再生され、残りの秒は黒い画面のままになります。

ビデオを完全に再生したときにのみ次の画像/ビデオに移動するように mediaPlayer を構成する方法はありますか?

EDIT1:

何かのようなもの:

    Timer_TickEvent()//Every 5 seconds it chooses a random given URL
    {
       axWindowsMediaPlayer1.URL = <Random URL>;
       if(<Random URL> == 'A video?')
       {
             timer.Enabled = false;
             PlayVideoLength();
       }
    }
    Private void PlayVideoLength()
    {
     if('<Random URL.Length> ?' == 'the length of the played video in axWindowsMediaPlayer1 ?')
     {
          Timer.enabled = true;
     }
    }

このコードは明らかに機能しません。それは私がやりたいことのアイデアです。

4

1 に答える 1

0

IWMPMedia::getItemInfoまたはgetTypeを使用して、URL がビデオ/オーディオ/画像メディアであるかどうかを確認できます。

axWindowsMediaPlayer コンポーネントで Url を設定する代わりに:

 MyMediaComponent.Url = <MyMediaUrl>;

次の URL で新しい を作成できます。

WMPLib.IWMPMedia MyNewMedia = MyMediaComponent.newMedia(<MyMediaUrl>);

そして、次の方法でメディアのタイプを取得できると思います:

MyNewMedia.getType();

msdn のドキュメントはこちらにあります

メディアのタイプが見つかったら、URL を設定する前にメディアのタイプをテストできます。

/* It is just a suggestion, this code don't work! */
if ( MyNewMedia.getType() == <A photo MEDIA code>)
{
    // Set the URL for show the picture
    MyMediaComponent.Url = <MyMediaUrl>;
    return;
}

//else

// This media is not a picture!

私のアイデアがお役に立てば幸いです。

于 2013-07-30T15:37:20.107 に答える