!7 lib 1006985 // JAAD for AAC decoding import net.sourceforge.jaad.mp4.*; import net.sourceforge.jaad.mp4.api.*; import net.sourceforge.jaad.mp4.api.Frame; import net.sourceforge.jaad.aac.*; p { File file = getProgramFile(#1006739, "Prince - Motherless Child - Live!-99Q31nyH16w.m4a"); assertTrue("Please run #1006739", file.exists()); fixContextClassLoader(); MP4Container container = new MP4Container(new RandomAccessFile(file, "r")); Movie movie = container.getMovie(); List tracks = movie.getTracks(AudioTrack.AudioCodec.AAC); if (tracks.size() > 0) { Track track = tracks.get(0); byte[] decoderSpecificInfo = track.getDecoderSpecificInfo(); Decoder dec = new Decoder(decoderSpecificInfo); new SampleBuffer buf; Frame frame; while not null (frame = track.readNextFrame()) { dec.decodeFrame(frame.getData(), buf); byte[] audio = buf.getData(); print("Got audio: " + l(audio) + " channels: " + buf.getChannels() + " bits/sample: " + buf.getBitsPerSample() + " " + (buf.isBigEndian() ? "big endian" : "little endian") + ", " + buf.getSampleRate() + " hz"); } } print("Got " + n(tracks, "tracks")); }