从 android 中的套接字捕获 RTP 数据包
Capturing RTP packets from sockets in android
我正在使用 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();
但是写入数据是我有点困惑的地方about.How我可以从套接字提供传入的 rtp 数据包吗?
audioTrack.write(byte[], int, int);
我被困在这里并正在寻找一些关于如何处理它的指导?任何类型的 material 继续前进都会有所帮助。谢谢。
从 udp 套接字读取数据后。
删除 12 字节 RTP header (rfc 3550),您将获得有效负载(PCM 数据),
您可以将 pcm 数据传递给音轨。
我正在使用 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();
但是写入数据是我有点困惑的地方about.How我可以从套接字提供传入的 rtp 数据包吗?
audioTrack.write(byte[], int, int);
我被困在这里并正在寻找一些关于如何处理它的指导?任何类型的 material 继续前进都会有所帮助。谢谢。
从 udp 套接字读取数据后。
删除 12 字节 RTP header (rfc 3550),您将获得有效负载(PCM 数据),
您可以将 pcm 数据传递给音轨。