package ch.retorte.intervalmusiccompositor.encoder;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.UnsupportedAudioFileException;
import ch.retorte.intervalmusiccompositor.spi.encoder.AudioFileEncoder;
/**
* @author nw
*/
public class WaveAudioFileEncoder implements AudioFileEncoder {
private final static String EXTENSION = "wav";
private final AudioFormat.Encoding targetEncoding = AudioFormat.Encoding.PCM_SIGNED;
private final AudioFileFormat.Type fileType = AudioFileFormat.Type.WAVE;
public void encode(AudioInputStream audioInputStream, long streamLengthInBytes, File outputFile) throws UnsupportedAudioFileException, IOException {
AudioInputStream pcmAis = AudioSystem.getAudioInputStream(targetEncoding, audioInputStream);
AudioSystem.write(pcmAis, fileType, outputFile);
}
public boolean isAbleToEncode() {
return true;
}
public String getFileExtension() {
return EXTENSION;
}
public String getIdentificator() {
return EXTENSION;
}
}