77 lines
1.5 KiB
Java
77 lines
1.5 KiB
Java
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
|