私はC#アプリケーションで非常に単純なビデオプレーヤーが必要です。それはファイルからビデオをループするだけです。私はWPFアプリケーションを開発しているので、System.Windows.Controls.MediaElement
を使用しようとしました。それは私が必要とするすべての機能を持っていますが、かなり貧弱です。私はフルHDビデオを再生しました。常に遅れていて、スパイクしています。MediaElementをAxWindowsMediaPlayerと同じように動作させるにはどうすればいいですか?
私のアプリの問題ではないことを確認するために、2つのテストアプリケーションを作成しました。 WinForms
ボーダーレスの1920x1080ウィンドウの最初はAxWMPLib.AxWindowsMediaPlayer
コントロールのみです。そして、同じサイズのボーダーレスウィンドウWPF
ウィンドウの2番目はSystem.Windows.Controls.MediaElement
です。
次に、私は両方のプレイヤーで2つのビデオを実行します。ここではそのスペックです:
1:1920x1080, 12000kb/s, 25 FPS, wmv
2:1920x1080, 5730kb/s, 25 FPS, mp4
AxWindowsMediaPlayer
すべてでは正常に見えます。しかし、MediaElement
はいくつかのフレームを落として、垂直同期を無視しているように見えます(速いシーンの変更中に、あるフレームの一部を別のフレームに表示することは可能です)。だからこそ、それは完全に不適切で、そうすべきではありませんが、マイクロソフトの公式ドキュメントでは何も見つかりませんでした。WPF
ではの代わりにMediaElement
を使用することが推奨されています。それがよりスムーズに動作するようにすることができますか?またはWinForms
Form
とAxWindowsMediaPlayer
の唯一の解決策はありますか?