/**
   * Closes the connection to the media source specified by the <tt>MediaLocator</tt> of this
   * <tt>DataSource</tt>.
   *
   * @see AbstractPullBufferCaptureDevice#doDisconnect()
   */
  @Override
  protected void doDisconnect() {
    synchronized (getStreamSyncRoot()) {
      Object[] streams = streams();

      if (streams != null) for (Object stream : streams) ((AudioRecordStream) stream).disconnect();
    }

    super.doDisconnect();
  }