public void Play(string filename) { mediaSession = new MediaSession() { Flags = MFASync.FastIOProcessingCallback, Queue = MFAsyncCallbackQueue.Standard, OnSessionTopologyStatus = mediaSession_OnSessionTopologyStatus }; mediaSession.Begin(); using (var sourceResolver = SourceResolver.Create()) using (var source = sourceResolver.CreateObjectFromURL(filename, MFResolution.MediaSource)) using (var topology = Topology.Create()) { BuildTopology(source, topology); mediaSession.SetTopology(topology); } }