public void loop() {
		stop();
		
		try {
			bitStream.reset();
		} catch (IOException e) {
			// ignore if no mark
		}
		
		player = new Thread() {
			public void run() {
				while (player == Thread.currentThread()) {
					try {
						playStream(Thread.currentThread());
					} catch (InternalException e) {
						e.printStackTrace();
						player = null;
					} 

					try {
						bitStream.reset();
					} catch (IOException e) {
					}
				}
			};
		};
		player.setDaemon(true);
		player.start();
	}