oupsss only add & change
// Add Varprivatestring _file = "";private IMFSourceReader pReaderTh;privatebool MFStart = false;// change thispublic MediaFoundationReader(string file) { _file = file; pReader = Init(); length = GetLength(); }// Add Init procedureprivate IMFSourceReader Init() { IMFSourceReader retReader; .... }// Add in Readpublicoverrideint Read(byte[] buffer, int offset, int count) {if (MFStart == false) { pReaderTh = Init();var pv = PropVariant.FromLong(position); pReaderTh.SetCurrentPosition(Guid.Empty, ref pv); MFStart = true; } ........ same }