public void seek(long pFrame) throws AudioDeviceException {
		if ( !(this.mAudio instanceof SeekableAudio) ) {
			throw new UnsupportedOperationException( "seeking is not possible on the current AudioFile" );
		}
		if ( this.mDone || this.mStopped ) {
			throw new IllegalStateException( "can't seek if stopped or already done with playing." );
		}
		boolean pause = this.mPause.isPaused();
		try {
			this.pause( true );
			((SeekableAudio) this.mAudio).seek( pFrame );
		}
		catch (AudioException e) {
			throw new AudioDeviceException( "couldn't seek with the current audio" );
		}
		finally {
			this.pause( pause );
		}
	}