I been working on this little program that would allow the user to reference this custom playlist file. The playlist file is a simple text file with a list of music files on a URL:

http://www.whatever.com/a.wav
http://www.whatever.com/b.wav
etc...

Basically what the program would do is ask the user for the playlist file, then it would store that in a String and open the text file (which is stored on a URL) in a URL object. What I want to try and do is read a line of the URL file and pass that String onto an AudioInputStream object (or any stream that could be read, looped, and written to a sourceDataLine). Basically I can read a URL of a single file (whatever.wav) off an internet site but I cannot read in the custom playlist I'm going for. This is the loop I'm using for the audiostream:

audioInputStream = AudioSystem.getAudioInputStream(audio); //(audio is the file I want to read in; however I cannot figure out how to read a line of a URL object to a String to actually file the audiovariable)
	audioFormat = audioInputStream.getFormat();  
					
	DataLine.Info dataLineInfo = //Output line to hardware
	new DataLine.Info(SourceDataLine.class,audioFormat); 
				
	if(debug==1)
	System.out.println("Loading to Mixer DataLine");
					
	sourceDataLine = (SourceDataLine)AudioSystem.getLine(dataLineInfo);
	sourceDataLine.open(audioFormat);
	sourceDataLine.start();
	
				
	int cnt;
	while((cnt = audioInputStream.read(tempBuffer,0,tempBuffer.length)) != -1){
	      if(cnt > 0){
	        	if(debug==1)
	        	System.out.println("Writing Stream to Internal Buffer");
	          	sourceDataLine.write(tempBuffer, 0, cnt);
	       }
	  }

So basically my question is does anyone know of a way for me to read a line of the playlist file (sort of like how Scanner works),which is stored online, and store that line as a String or URL object variable so I can play it?

Thanks

Recommended Answers

All 5 Replies

You'll have to read in the entire file (that's the way a URL works), parse it, and distribute the lines yourself.

Can you not just create an AudioClip object with the corresponding URL and then call the play() method on it?

Well see the problem with creating a clip is that I cannot because the first file I'm referencing is a playlist file that has the list of the files I want to retrieve. I also want to stream the file instead of a complete memory storage (like a clip) so the program uses little memory and can be streammed from even dail-up at reasonable speeds.

I have been looking at the XML parsing coding and it seems a little complex, so I hope the URL object parsing is a little earier. Could someone point me to a tutorial on parsing URL objects?

Thanks

what format is the playlist?

You might want to take a look at javazoom.com, his mp3 library supports shoutcast streams.

Thanks I will take a look at that.

My playlist is basically a text file that has the URL of the different files on seperate lines, no fancy coding or anything.

what format is the playlist?

You might want to take a look at javazoom.com, his mp3 library supports shoutcast streams.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.