public void run()
	{
		try
		{
			//do we need the local or the stream from the net?
			if(stream.getStatus() && stream.connectToRelayCB) {
				options.add("http://127.0.0.1:"+stream.relayServerPortTF);
	    	} else {
	    		options.add(stream.address);		
	    	}
			
			//collect the options
			options.add(0,mplayerPath);
			options.add("-slave");
			options.add("-quiet");
			options.add("-cache");
			options.add(String.valueOf(MPLAYER_CACHE));

			//say, we are loading the stream
			if (mainGui != null)
			{
				mainGui.showMessageInTray(trans.getString("audioplayer.loadingStream"));
			}
			
			//start the process itself
			lg.log("AudioPlayer: Start music with mplayer command: "+mplayerPath+" "+options.toString());
//			mplayerProcess = Runtime.getRuntime().exec(mplayerPath+" "+mplayerOptions);
//			
			mplayerProcess = new ProcessBuilder(options).start();
			
			//create the streams we need to interact
			inStream = new BufferedReader(new InputStreamReader(mplayerProcess.getInputStream()));
			errStream = new BufferedReader(new InputStreamReader(mplayerProcess.getErrorStream()));
			outStream = new BufferedWriter(new OutputStreamWriter(mplayerProcess.getOutputStream()));
			
			String messages = "";
			
			//get the messages from mplayer
			while((messages = inStream.readLine()) != null)
			{
				//if we have a new interpret and title update the gui
				if(messages.startsWith("ICY Info: StreamTitle="))
				{
					mainGui.setTitleForAudioPlayer(stream.name ,messages.substring(messages.indexOf("StreamTitle=\'")+13,messages.lastIndexOf("';")),false);
//					mainGui.setTitleForAudioPlayer(stream.name ,,false);
					
				}
			}
		 
		} catch (IOException e) {
			lg.logE("Error while executing mplayer: "+options.toString()+e.getMessage());
		} catch (Exception e) {
			lg.logE("Error while executing mplayer: "+options.toString()+e.getMessage());
		}  
	}