private void CreateMedia(MediaPlayer mediaPlayer) { CheckMediaDisabledFlags(); SafeMILHandle unmanagedProxy = null; MediaEventsHelper.CreateMediaEventsHelper(mediaPlayer, out _mediaEventsHelper, out unmanagedProxy); try { using (FactoryMaker myFactory = new FactoryMaker()) { HRESULT.Check(UnsafeNativeMethods.MILFactory2.CreateMediaPlayer( myFactory.FactoryPtr, unmanagedProxy, SecurityHelper.CallerHasMediaPermission(MediaPermissionAudio.AllAudio, MediaPermissionVideo.AllVideo, MediaPermissionImage.NoImage), out _nativeMedia )); } } catch { if (_nativeMedia != null && !_nativeMedia.IsInvalid) { _nativeMedia.Close(); } throw; } _helper = new Helper(_nativeMedia); AppDomain.CurrentDomain.ProcessExit += _helper.ProcessExitHandler; }
/// <summary> /// Create the unmanaged media resources /// </summary> private void CreateMedia(MediaPlayer mediaPlayer) { SafeMILHandle unmanagedProxy = null; MediaEventsHelper.CreateMediaEventsHelper(mediaPlayer, out _mediaEventsHelper, out unmanagedProxy); try { using (FactoryMaker myFactory = new FactoryMaker()) { HRESULT.Check(UnsafeNativeMethods.MILFactory2.CreateMediaPlayer( myFactory.FactoryPtr, unmanagedProxy, true, out _nativeMedia )); } } catch { if (_nativeMedia != null && !_nativeMedia.IsInvalid) { _nativeMedia.Close(); } throw; } _helper = new Helper(_nativeMedia); AppDomain.CurrentDomain.ProcessExit += _helper.ProcessExitHandler; }