@Override
	public void open() throws AudioException {
		super.open();
		DataLine.Info info = new DataLine.Info(
				this.mTargetDataLineClass,
				this.mAudioFormat
		);
		try {
			if ( !this.mMixer.isOpen() ) {
				this.mMixer.open();
				this.mOpenedMixer = true;
			}
			this.mTargetDataLine = (TargetDataLine) this.mMixer.getLine( info );
			if ( this.mAudioFormat == null ) {
				this.mAudioFormat = this.mTargetDataLine.getFormat();
			}
			this.mTargetDataLine.open( this.mAudioFormat, this.mBufferSize );
			this.mTargetDataLine.start();
		}
		catch (LineUnavailableException e) {
			this.close();
			throw new AudioException( "Error during opening the TargetDataLine" );
		}
	}