@Override
	public void skip(long pFrames) throws AudioException {
		if ( this.mClosed ) {
			throw new IllegalStateException( "The Audio is not opened" );
		}
		if ( !this.canSeek() ) {
			throw new AudioException( "can't seek on this audio" );
		}
		//FIXME: skipping in wav files
		double rate = ((double) pFrames) / this.mFrameLength;
		long bytesToSkip = (long) Math.round(
				rate * this.mFrameLength *
						this.mFrameSize
		);
		long totalSkipped = 0;
		try {
			while ( totalSkipped < bytesToSkip ) {
				long skipped = this.mAudioInputStream.skip(
						bytesToSkip -
								totalSkipped
				);
				totalSkipped += skipped;
				if ( skipped == 0 ) {
					break;
				}
			}
		}
		catch (IOException e) {
			throw new AudioException( "couldn't skip the audio" );
		}
		this.mFramePosition += totalSkipped / this.mFrameSize;
	}