我正在使用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);
我被困在这里,正在寻找有关如何处理的指南?任何类型的材料都将是有帮助的。谢谢。
最佳答案
一旦从udp套接字读取数据。
删除12字节的RTP标头(rfc 3550),您将获得有效负载(PCM数据),
您可以将pcm数据传递到音轨。
关于java - 从Android中的套接字捕获RTP数据包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57098490/