This is the mail archive of the mailing list for the Java project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

javax.sound. - application


I wrote a little sound app using javax.sound.-classes.

I finally succeeded in compiling it to native code using gcj 4.1. However, when I invoke the binary (which is basically an audio player that plays two files at the same time) there is the following exception trace:

Exception in thread "main" javax.sound.sampled.UnsupportedAudioFileException: file type not recognized
   at javax.sound.sampled.AudioSystem.getAudioInputStream(
   at untitled1.PlaySoundStream.streamSampledAudio(PlaySoundStream)
   at untitled1.PlaySoundStream.main(PlaySoundStream)

This happens if I use mp3-files as well as if I use ordinary .wav-files.

I also tried to compile it to a .class file (both with suns java 1.5 jdk and gcj 4.1, see makefile below). Then I ran it using

Sun's java 1.5: works
gij 4.1: doesn't work (Exception in thread "main" java.lang.IllegalArgumentException: format not supported for stream
   at javax.sound.sampled.AudioSystem.getAudioInputStream(
   at untitled1.PlaySoundStream.streamSampledAudio(
   at untitled1.PlaySoundStream.main(
kaffe (Engine: Just-in-time v3   Version: 1.1.7   Java Version: 1.4): doesn't work (similar error)

It seems to me that I have to have Java 1.5 somehow to run the stuff, but if I compile it natively gcj probably can't use it (gcj 4.1 =~ Java 1.4 regarding javax.sound ? )

I also find it striking that there are different errors ("file type not recognized" vs "format not supported").

Do you think it is still possible to compile to native code (I would like that for performance reasons, later on it should be possible to decode appr 30 mp3 files at the same time.) Or do you think it actually doesn't matter?

Thanks for your help,


IFLAGS=-I$(JARS)jl1.0.jar -I$(JARS)tritonus_share-0.3.6.jar -I$(JARS)tritonus_remaining-0.3.6.jar -I$(JARS)tritonus_mp3-0.3.6.jar

	javac -cp . untitled1/ 

	gcj $(IFLAGS) untitled1/PlaySoundStream.class --main=untitled1.PlaySoundStream -o PlaySoundStream

	gcj $(IFLAGS) untitled1/ -C

Relevant part of source code:
	import javax.sound.sampled.*;


	// Get an audio input stream from the URL



            // Get information about the format of the stream

            AudioFormat sourceformat = ain1.getFormat( );

            // Audioformat festlegen fuer zu ladende Audiodateien

            // (signed, mono)

            AudioFormat targetformat = new AudioFormat(44100, 16, 1, true, false);

            // stereo

            AudioFormat datalineformat = new AudioFormat(44100, 16, 2, true, false);

            // convert audio input streams to target format

            // first: to pcm-stereo, then to pcm-mono

            ain1 = AudioSystem.getAudioInputStream(datalineformat, ain1); // -- this is line 61

            ain1 = AudioSystem.getAudioInputStream(targetformat, ain1);

            ain2 = AudioSystem.getAudioInputStream(datalineformat, ain2);

            ain2 = AudioSystem.getAudioInputStream(targetformat, ain2);

            DataLine.Info info=new DataLine.Info(SourceDataLine.class,datalineformat);

            // Open the line through which we'll play the streaming audio.

            line = (SourceDataLine) AudioSystem.getLine(info);



"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]