背景
我正在创建一个 VoIP 应用程序。我知道已经有很多人出来了,但我有我的理由。由于商业影响,我不能只分叉 SipDroid,尽管它是一个高质量的应用程序。此应用程序针对 10 级姜饼 2.3.3。
问题
我创建了一个简单的 Activity,它创建了一个 AudioRecord 实例,然后开始一个循环:
int timestamp = 0;
int seqNr = 12;
while(true) {
byte[] buffer = new byte[bufferSize];
int num = recorder.read(buffer, 0, bufferSize);
try {
byte[] pcm = new byte[bufferSize];
//
// presumably here I convert the byte[] from PCM into G711??
//
RTPStream.Write(pcm,seqNr,timestamp);
timestamp += num;
seqNr++;
} catch (IOException e) {
e.printStackTrace();
}
}
问题
如何将 PCM 44KHz 16bit Monobyte[]
变成 G711u/abyte[]
的?