Java 在android中从套接字捕获RTP数据包
我正在使用Java 在android中从套接字捕获RTP数据包,java,android,rtp,Java,Android,Rtp,我正在使用rtp-stream将pcm(16kHz)数据从远程服务器传输到安卓设备。使用audiotrack似乎是播放pcm音频的正确方法。我只是在寻找一种从服务器捕获rtp数据包的方法,并可以将其写入audiotrack.write()。这就是我目前所得到的 int bufsize = AudioTrack.getMinBufferSize(16000, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT); Audi
rtp-stream
将pcm(16kHz)
数据从远程服务器传输到安卓设备。使用audiotrack
似乎是播放pcm音频的正确方法。我只是在寻找一种从服务器捕获rtp数据包的方法,并可以将其写入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数据传送到音频曲目。您有任何例子吗?这对我理解会更有帮助。我也可以实现它。你可以检查任何开源代码。(pjmedia/pjsip或gstreamer rtp插件或ffmpeg rtp)