1

AxWindowsMediaPlayerアプリケーションでコンポーネントを使用していWinFormます。再生したいファイルにURLを設定してCtlcontrols.play()コマンドを呼び出すと、たとえば. ムービーの再生開始までに 250 ミリ秒の遅延。

この遅延エリアの間、AxWindowsMediaPlayerは黒です。この動作は、あるムービーから別のムービーに変更するとき、または現在再生中のムービーを停止して再び開始するときに非常に簡単に確認できます。

AxWindowsMediaPlayer私の現在のソリューションは、映画の再生を開始するときに true に設定された延期された可視性に基づいています。プレーヤーは、たとえばの後にユーザーに表示されます。私が確信している500msのとき、映画は実際に再生されており、ユーザーには黒い何も表示されません。

黒い何もないプレーヤーを回避するより良い方法を探しています。誰かが同様の問題を解決しましたか? または、少なくとも、PC ごとに異なる非常に経験的な値を扱っているため、誰にでもできるソリューションを作成する方法はありますか?

Prereq: WinForms, .NET 4.0, WMP 12 for Windows 7

4

2 に答える 2

0
private void OnPlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
    switch (e.newState)
    {
        case 3: // Playing started
           // Show your control
           break;
    }
}
于 2013-09-19T08:19:05.570 に答える
0
private void timer1_Tick(object sender, EventArgs e)
{
    if(axWindowsMediaPlayer1.Ctlcontrols.currentPosition > axWindowsMediaPlayer1.Ctlcontrols.currentItem.duration - 0.01)
        {
        axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 0;
        }
}

このコードは、ビデオが 0.01 ミリ秒実行されているときに currentPosition を 0 秒に変更して、黒い画面の遷移効果を回避できるようにします。ただし、短いビデオの場合は、追加のコードが必要です。

于 2018-10-23T15:58:32.903 に答える