基本想法是创建一个应用程序,该应用程序可以记录来自一台设备的音频,并通过套接字将其通过Wlan发送到将播放该设备的其他设备。简而言之,一个Lan语音聊天程序。Android:使用AudioTrack和套接字手动流式传输音频
我使用AudioRecord对象从麦克风录制实时音频,然后将录制的数据读入字节数组,然后将字节数组写入TCP套接字。接收设备然后从套接字读取该字节数组并将其写入到AudioTrack对象的缓冲区中。
其像
音频记录 - >字节数组 - >插座---> LAN --->插座 - >字节数组 - > AudioTrack
的进程正在使用的同时反复循环。
虽然音频在播放其帧之间的滞后。即当我说你好接收者听到他 - ll - O。虽然音频已完成,但缓冲区块之间存在滞后。
据我知道的滞后是由于在局域网传输
耽误我怎样改进呢? 我应该使用什么方法,以便在商业在线聊天应用程序(如skype和gtalk)中平滑使用?
但是不会缓冲开始减少,因为音频将以比它到达的速度更大的速率进行供给 – Allahjane
随着缓冲区显示较晚,缓冲区将会减少。但是,也应该填补作为晚期终于到达。需要考虑的一件事就是将缓冲区提交到网络的时间与录制音频的采样率对齐。另一件需要考虑的事情是,你可能无法获得缓冲区。因此,在播放音频到接收器之前的延迟应该足够慷慨,以便有时间处理。 – Ehz