我正在开发一个录制应用程序,因此我尝试使用库Jnetpcap解码流量rtp。 提供的编解码器通常有两种类型:G711 alaw或G711 ulaw。 我转换有效载荷并将其保存为wav文件,但我无法收听录制的语音。 我使用此代码将字节数组转换为wav文件:
byte[] pcm_data= rtp.getPayload();
pcm_data= new byte[44100*2];
double L1 = 44100.0/440.0;
double L2 = 44100.0/455.0;
for(int i=0;i<pcm_data.length;i++){
pcm_data[i]= (byte)(55*Math.sin((i/L1)*Math.PI*2));
pcm_data[i]+= (byte)(55*Math.sin((i/L2)*Math.PI*2));
}
AudioFormat frmt= new AudioFormat(44100,8,1,true,false);
AudioInputStream ais = new AudioInputStream(
new ByteArrayInputStream(pcm_data)
,frmt
,pcm_data.length);
AudioSystem.write(
ais
,AudioFileFormat.Type.WAVE
,new File("test.wav"));