예제 #1
0
        private void Run()
        {
            try
            {
                _VisualTarget       = new VisualTarget(_HostVisual);
                _VisualTargetSource = new VisualTargetPresentationSource(_VisualTarget);

                lock (_Thread)
                {
                    CreateMediaPlayer();
                }

                _VisualTargetSource.RootVisual = _MediaElement;

                Dispatcher.Run();
            }
            finally
            {
                if (_VisualTarget != null)
                {
                    _VisualTarget.Dispose();
                }

                lock (_Thread)
                {
                    DestroyMediaPlayer();
                }

                _CanPlay = false;
            }
        }
예제 #2
0
        /// <summary>
        /// Releases all resources used by the <see cref="VisualSource"/>.</summary>
        /// <remarks>
        /// <b>Dispose</b> calls <see cref="CompositionTarget.Dispose"/> on the <see
        /// cref="VisualTarget"/> that manages visual composition.</remarks>

        public void Dispose()
        {
            if (!_isDisposed)
            {
                _isDisposed = true;
                _visualTarget.Dispose();
            }
        }
예제 #3
0
 /// <summary>
 /// Releases unmanaged and - optionally - managed resources.
 /// </summary>
 /// <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
 private void Dispose(bool alsoManaged)
 {
     if (m_IsDisposed)
     {
         return;
     }
     if (alsoManaged)
     {
         m_IsDisposed = true;
         HostConnector.Dispose();
     }
 }
예제 #4
0
 public void Dispose()
 {
     this.RunInTouchDispatcher(delegate()
     {
         VisualTarget visualTarget = this._visualTarget;
         if (visualTarget == null)
         {
             return;
         }
         visualTarget.Dispose();
     });
     this.Close();
 }
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _visualTarget?.Dispose();
                    // TODO: dispose managed state (managed objects).
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                disposedValue = true;
            }
        }