package org.korsakow.services.encoders.sound.lame;
import java.io.File;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import org.korsakow.services.encoders.EncoderException;
import org.korsakow.services.encoders.UnsupportedFormatException;
import org.korsakow.services.encoders.sound.FileExternalSoundEncoder;
import org.korsakow.services.encoders.sound.SoundEncoder;
import org.korsakow.services.encoders.sound.SoundFormat;
public abstract class LameEncoder extends FileExternalSoundEncoder
{
public abstract static class LameEncoderDescription implements SoundEncoder.SoundEncoderDescription
{
private static final Collection<SoundFormat> inputFormats = Collections.unmodifiableCollection(Arrays.asList(
SoundFormat.WAV
));
private static final Collection<SoundFormat> outputFormats = Collections.unmodifiableCollection(Arrays.asList(
SoundFormat.MP3
));
public Collection<SoundFormat> getSupportedInputFormats() {
return inputFormats;
}
public Collection<SoundFormat> getSupportedOutputFormats() {
return outputFormats;
}
}
// @Override
// public void encode(Process process, InputStream sourceStream, OutputStream destStream) throws EncoderException
// {
// try {
// super.encode(process, sourceStream, destStream);
// } catch (EncoderException e) {
// if (e.getMessage().contains("unsupported audio format"))
// throw new UnsupportedFormatException(e.getMessage(), e.getDetails(), e.getFile());
// throw e;
// }
// }
@Override
protected void encode(Process process, File sourceFile, File destFile) throws EncoderException, InterruptedException
{
try {
super.encode(process, sourceFile, destFile);
} catch (EncoderException e) {
if (e.getMessage().contains("unsupported audio format"))
throw new UnsupportedFormatException(e.getMessage(), e.getDetails(), e.getFile());
throw e;
}
}
}