In my Windows Forms C# application I implemented the COM AxWMPLib.AxWindowsMediaPlayer
, I have a button which sets the currentPosition
, however it has shown a weird behavior when it comes to WMV files, it does NOT set the currentPosition
properly, instead it gets a 2~6 seconds difference.
In the following example I set currentPosition
to 7 but it actually sets back to 5 or sometimes 4, why? It only happens on WMV files though, MKV and MP4 are working fine.
namespace MediaPlayerTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void axWindowsMediaPlayer1_Enter(object sender, EventArgs e)
{
axWindowsMediaPlayer1.URL = @"D:\Downloads\sample.wmv";
}
private void button1_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 7.0;
}
}
}
Is that a bug? How to fix it? Is there a workaround for WMV files?
Thanks for @Hans Passant comment. According to this answer: https://superuser.com/questions/591904/windows-media-player-v12-seek-position-wont-play-from-a-chosen-position
It seems WMV has encoding issues. Besides MKV and MP4 file formats are working fine I did lots of tests in order to find similar issues on other file formats such as: AVI, WebM, 3GP, MPG, VOB, MOV, FLV.
WMV is the only one which presented issues. So I made this workaround for WMV files: