954,174 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Audio: Reading Internet "Playlist" and outputting audio

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

Frank0051
Light Poster
27 posts since Dec 2004
Reputation Points: 10
Solved Threads: 0
 

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

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

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

server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
 

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

Frank0051
Light Poster
27 posts since Dec 2004
Reputation Points: 10
Solved Threads: 0
 

what format is the playlist?

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

Phaelax
Practically a Posting Shark
858 posts since Mar 2004
Reputation Points: 92
Solved Threads: 51
 

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.
Frank0051
Light Poster
27 posts since Dec 2004
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You