/// <summary>
        /// Dispose(bool disposing) executes in two distinct scenarios.
        /// If disposing equals true, the method has been called directly
        /// or indirectly by a user's code. Managed and unmanaged resources
        /// can be disposed.
        /// If disposing equals false, the method has been called by the
        /// runtime from inside the finalizer and you should not reference
        /// other objects. Only unmanaged resources can be disposed.
        /// </summary>
        protected virtual void Dispose(bool disposing)
        {
            // Check to see if Dispose has already been called.
            if (!this._disposed)
            {
                // Note disposing has been done.
                _disposed = true;

                // If disposing equals true, dispose all managed
                // and unmanaged resources.
                if (disposing)
                {
                    if (_pjAudioMediaRecorder != null)
                    {
                        _pjAudioMediaRecorder.Dispose();
                    }
                }

                // Call the appropriate methods to clean up
                // unmanaged resources here.
                _pjAudioMediaRecorder = null;
            }
        }
 /// <summary>
 /// Audio media recorder.
 /// </summary>
 public AudioMediaRecorder()
 {
     _pjAudioMediaRecorder = new pjsua2.AudioMediaRecorder();
 }