在android中使用Jspeex对音频进行解码会产生断断续续的声音

在android中使用Jspeex对音频进行解码会产生断断续续的声音,android,audio,live-streaming,speex,jspeex,Android,Audio,Live Streaming,Speex,Jspeex,我正在开发一个android应用程序,它可以播放实时speex音频流。所以我使用了jspeex。 音频流为11khz,16位。 在android方面,我做了如下工作: SpeexDecoder decoder = new SpeexDecoder(); decoder.init(1, 11025,1, true); decoder.processData(subdata, 0, subdata.length); byte[] decoded_data = new byte[decoder.ge

我正在开发一个android应用程序,它可以播放实时speex音频流。所以我使用了jspeex。
音频流为11khz,16位。
在android方面,我做了如下工作:

SpeexDecoder decoder = new SpeexDecoder();
decoder.init(1, 11025,1, true);
decoder.processData(subdata, 0, subdata.length);
byte[] decoded_data =  new byte[decoder.getProcessedDataByteSize()];
int result= decoder.getProcessedData(decoded_data, 0);
当Audiotrack播放此解码数据时,音频的某些部分会被剪辑。
此外,当解码器设置为nb模式(第一个参数设置为0)时,音质更差。 我想知道我的代码中是否存在参数配置错误。
感谢您的帮助和建议。

提前感谢。

应针对特定设备以优化的方式设置采样率和缓冲区大小。例如,您可以使用以获得缓冲区的最佳大小:

   int sampleRate = 11025; //try also different standard sampleRate
   int bufferSize = AudioRecord.getMinBufferSize(sampleRate,
                        AudioFormat.CHANNEL_CONFIGURATION_MONO,
                        AudioFormat.ENCODING_PCM_16BIT);

如果您的
Audiotrack
的缓冲区太小或太大,您将遇到音频故障。我建议您查看并使用这些值(sampleRate和bufferSize)。

我设置了11025,因为传入的音频为11 KHz,我还尝试了不同的标准频率和缓冲区大小。。但质量并没有提高