Delphi 7、indy9 tcp 音频流

标签 delphi tcp audio-recording microphone indy-9

我正在尝试使用 Delphi 7 和 Indy9 制作一个通过 TCP 连接使用音频流的应用程序。

更清楚地说,我如何从客户端麦克风流式传输输入并将其发送到(TCP 或 HTTP 服务器)?考虑实时。

谢谢

最佳答案

我从来没有这样做过,但我认为你可以从基础开始......

  • 设置要使用的帧速率,8000hz是一个不错的选择

  • 选择要从麦克风捕获的 block 大小(1024、2048、4096、
    等)

  • 以短 int 或 float32(原始音频)形式从麦克风捕获音频

  • 将此 block 放入一个套接字缓冲区(最好是 UDP)中,然后发送到
    另一端通过 UDP 连接

  • 如果您在此过程中进行循环,您是否通过
    发送音频数据 套接字

  • 现在对方只需要从每个 UDP 连接获取数据即可
    并播放

此步骤是基本的音频流:-)

将来您可能想要使用队列,但那是另一个故事了

关于Delphi 7、indy9 tcp 音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914975/

相关文章:

delphi - 控件放在最上面,像TPanel 可以吗?

delphi - 如何在 Delphi 10.3 中启用源文件删除

delphi - 如何在Delphi中从字节数组复制双字大小数据并将其转换为双字类型值?

sockets - 为什么非阻塞 TCP 套接字会在::write() 调用中花费大量时间?

ios - 如何为AVWriter写入设置CMSampleBuffer的时间戳

javascript - 使用 Web Audio API 连接多个声卡输入

delphi - 为什么在 'Child' 方法中将参数类型从 'const' 切换到 'var' 时无法传递 'overloaded' 类实例

具有交叉通信要求的 C# TCP 服务器和客户端

java - 在 Java 中列出打开的 TCP 连接

c# - C#Naudio音频电平捕获和显示,仅在打开录音属性时有效