This week's book giveaway is in the Agile and other Processes forum. We're giving away four copies of The Mikado Method and have Ola Ellnestam and Daniel Brolund on-line! See this thread for details.
I am trying to receive RTP audio and then play it using the Java 3D sound APIs. I am sucessfully receiving the audio, but cannot get it to play through the Java 3D PointSound class. I created a PipedOutputStream and PipedInputStream and connected those. Then I created an AudioInputStream from the PipedInputStream and set that AudioInputStream as the source for the PointSound. Below is a code snipet showing how I set this up: pout = new PipedOutputStream(); try { pin = new PipedInputStream(pout); } catch (Exception e) { System.out.println("Piped input error"); }
Then I have a Thread that accepts the RTP packets, strips off the RTP header and writes the raw audio data into the PipedOutputStream and tells the sound to start playing. What I was expecting to happen was that I was writing to the PipedOutputStream, which was the source for the sound that I wanted to play, so the sound would be read out of the stream as it was written into the stream. What actually happened is that data was written into the PipedOutputStream until the buffer was full and no sound was played. Does anyone have any ideas if this should work?