programming-examples/java/XML/GSMEncoder.java

77 lines
1.5 KiB
Java
Raw Normal View History

2019-11-15 12:59:38 +01:00
GSMEncoder
import java.io.IOException;
import java.io.File;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
// not portable, but cannot be avoided currently
import org.tritonus.share.sampled.AudioFileTypes;
import org.tritonus.share.sampled.Encodings;
GSMEncoder.java
public class GSMEncoder
{
public static void main(String[] args)
{
if (args.length != 2)
{
printUsageAndExit();
}
File pcmFile = new File(args[0]);
File gsmFile = new File(args[1]);
AudioInputStream ais = null;
try
{
ais = AudioSystem.getAudioInputStream(pcmFile);
}
catch (Exception e)
{
e.printStackTrace();
}
if (ais == null)
{
out("cannot open audio file");
System.exit(1);
}
AudioFormat.Encoding targetEncoding = Encodings.getEncoding("GSM0610");
AudioInputStream gsmAIS = AudioSystem.getAudioInputStream(targetEncoding, ais);
AudioFileFormat.Type fileType = AudioFileTypes.getType("GSM", ".gsm");
int nWrittenFrames = 0;
try
{
nWrittenFrames = AudioSystem.write(gsmAIS, fileType, gsmFile);
}
catch (IOException e)
{
e.printStackTrace();
}
}
private static void printUsageAndExit()
{
out("GSMEncoder: usage:");
out(" java GSMEncoder ");
System.exit(1);
}
private static void out(String strMessage)
{
System.out.println(strMessage);
}
}
/*** GSMEncoder.java ***/
Built by Text2Html