我正在使用rtp stream
将pcm(16kHz)
数据从远程服务器流式传输到android设备。使用audiotrack
似乎是玩pcm audio
的正确方法。我只是在寻找一种从服务器捕获rtp packets
并将其写入audiotrack.write()
的方法。到目前为止,这就是我所得到的。
int bufsize = AudioTrack.getMinBufferSize(16000,
AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_16BIT);
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
16000,
AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
bufsize,
AudioTrack.MODE_STREAM);
audioTrack.play();
但是写数据是我很困惑的地方。我该如何从套接字输入传入的rtp数据包。
audioTrack.write(byte[], int, int);
我被困在这里,正在寻找一些处理方法的指南?任何类型的材料都将是有帮助的。谢谢。
答案 0 :(得分:0)
从udp套接字读取数据后。
删除12字节的RTP标头(rfc 3550),您将获得有效负载(PCM数据),
您可以将pcm数据传递到音轨。