c++ - 如何通过UDP播放音频流?

标签 c++ audio audio-streaming directsound rtaudio

我编写Windows应用程序,它从Android应用程序接收音频数据,我使用UDP通过LAN传输数据,并使用RtAudio播放音频流。

每个UDP包有效载荷都是一个音频样本数组,格式为32k / 16bit / pcm。

当数据大小为576字节(换句话说为288个样本)时,一切正常,我们可以听到清晰的声音。

但是,当数据大小为192字节,换句话说为96个样本时,声音不清楚。

有人有问题吗?

最佳答案

确定每个缓冲区数据包的最佳大小是一种平衡行为...太大了,您逐渐偏离了实时响应,但是又变得太小,并且代码按比例花费了太多时间来讨论简单传输数据的样板管道。好像您说到192个字节开始起作用时,您已达到此下限。

确实如此,与运输机制无关。还请记住,聆听几百个字节时消耗的挂钟时间很小(对于CD质量的单声道音频而言,通常为每秒42,100个样本),因此您不会在实时方面浪费太多时间来为自己提供更多的下限资源打了。

关于c++ - 如何通过UDP播放音频流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53611852/

相关文章:

audio - 在AAC中转换后ffmpeg错误的音频文件

c++ - 将音频文件存储到数组/字符串流 C++

matlab - 使用Matlab对声音进行反卷积

java - 从麦克风或音频文件中识别拨号音

linux - 将 VPS 设置为流媒体复制器(用于在线广播)?

node.js - 使用 puppeteer 流式传输页面的音频

c++ - CLion 编译 glut linux

c++ - 制作功能 "const"的意图是什么

C++编译错误c2664 ZeroMemory

c++ - 在 C++ 中通过 tcp 套接字发送结构