package np.org.mpp.sambad.audio; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javazoom.spi.mpeg.sampled.file.MpegEncoding; import javazoom.spi.mpeg.sampled.file.MpegFileFormatType; import org.xiph.speex.spi.SpeexFileFormatTyped; public class SpeexTest { private static final int UNKNOWN = -1; boolean bSigned = true; boolean bSignednessSpecified = false; boolean bBigEndian = false; boolean bEndianessSpecified = false; int nSampleSizeInBits = 16; int nChannels = 1; float fSampleRate = 44100.0f; AudioFileFormat.Type targetFileType = MpegFileFormatType.MP3; /* * converts a raw file in source to speex format at destination */ public SpeexTest(String source, String destination){ String strInputFilename = source; String strOutputFilename = destination; File inputFile = new File(strInputFilename); File outputFile = new File(strOutputFilename); InputStream inputStream = null; try{ inputStream = new FileInputStream(inputFile); }catch (FileNotFoundException e){ System.out.println("cannot load input file " + strInputFilename); System.exit(1); } inputStream = new BufferedInputStream(inputStream); AudioFormat format = new AudioFormat(fSampleRate, nSampleSizeInBits, nChannels, bSigned, bBigEndian); System.out.println("AudioFormat: " + format); long lLengthInFrames = inputFile.length() / format.getFrameSize(); AudioInputStream ais = new AudioInputStream(inputStream, format, lLengthInFrames); int nWrittenBytes = 0; try{ System.out.println(AudioSystem.isConversionSupported(MpegEncoding.PCM_SIGNED, format)); nWrittenBytes = AudioSystem.write(ais, targetFileType, outputFile); }catch (IOException e){ e.printStackTrace(); } } public void readSource(){ } public static void main(String argv[]){ AudioFileFormat.Type[] aTypes = AudioSystem.getAudioFileTypes(); //AudioSystem.getTargetEncodings(sourceEncoding); for (int i = 0; i < aTypes.length; i++){ System.out.println(aTypes[i].toString()+ aTypes[i].getExtension()); } try{ new SpeexTest("system/9/edit14", "system/destination.mp3"); }catch(Exception e){ e.printStackTrace(); } } }