我目前正在使用流式传输应用程序在本地网络上传输本地(24/96,16/48)wav文件。如何通过网络发送/同步音频流
我使用一个循环连续发送一大块音频并模拟播放,但是我有问题让播放在发送者和接收者之间正确同步。
这是循环:
-- using a block size of 192 frames int bufsz = 192 * bytes_per_frame; char buf [ bufsz ]; int bytesread = buffer_callback (buf, bufsz); int bytes_per_second = bytes_per_frame * samplerate; sleeptime = bytesread * 1000/bytes_per_second * 1000; -- doing this to avoid gaps sleeptime = sleeptime - 200; usleep (sleeptime);
问题: 有其随时间累积的延迟。在服务器端停止时,音频会在接收端持续播放一段时间。如何正确同步播放?我使用正确的缓冲区大小吗?睡眠时间计算是否正确?我想这是从睡眠时间减少200积累?
在此先感谢!
什么延迟?你为什么要睡觉? –
然后是音频波涛汹涌? –
我睡觉以模拟播放。延迟是当我在服务器前端停止播放时,播放不会立即停止在客户端。希望我清楚。 – mdlfdbck