public void start() throws MediaException {
    	
    	//System.out.println("START REQUEST: "+this);
    	
        if(state == CLOSED) {
            throw new IllegalStateException();
        }

        if(state == STARTED) return;
        
        if(state == UNREALIZED || state == REALIZED){
            prefetch();
        }
        try{
        	startImpl();
        	ApplicationManager.manager.activePlayers.addElement(this);
    	}
        catch(MediaException e){
        	throw e;
        }
    	catch(Exception e){
    		e.printStackTrace();
    		throw new MediaException(e.toString());
    	}

        state = STARTED;
        if(autoNotify){
        	startListenerNotification(PlayerListener.STARTED, null);
        }
    }