flutter - 如何使用 dart/flutter 通过 UDP 流式传输麦克风音频?
问题描述
使用我的程序,我需要能够对着一台设备说话,而我的声音可以在另一台设备上播放。我原本打算使用 TCP 来执行此操作,但后来有人建议我应该使用 UDP 来减少延迟并使音频在通过时听起来更好。但正如标题所说,我怎样才能获取 dart Stream 并通过 UDP 发送它?我知道库中的 TCPSocket
对象上有一个函数可以让这很容易,不是 100% 确定它是如何工作的,但我想知道 UDP 是否有类似的东西?我正在使用这个dart:io
addStream()
顺便说一句,用于录制音频的库。我不太确定自己在做什么,并希望有人可以解释如何在 dart 中做到这一点,希望这可以帮助一个徘徊和绝望的谷歌人。这是我使用 TCP 的程序所拥有的:
void handleClient(Socket client) {
print("Connected a client");
client.addStream(_audioStream);
}
_audioStream = _recorder.audioStream.listen((data) {
if (_isRecording) {
ServerSocket.bind(InternetAddress.anyIPv4, 4444)
.then((ServerSocket server) {
print("Server socket init");
server.listen(handleClient);
});
}
});
同样,这是使用 TCP 的版本,当然这不起作用。我不太确定我在做什么,但希望这能让你对我正在尝试做的事情有一个很好的了解。如何使用 dart 通过 UDP 发送音频流?
解决方案
推荐阅读
- android - 如何从项目中获取 MD5 签名?
- skype-for-business - 使用 UCWA (Skype for Business) 发送 IM 的问题
- java - java - 如何在保持物理大小的Java中重新采样图像?
- node.js - Express.js 玉模板布局在几页中不起作用
- docker - 如何将带参数的命令参数(例如 --param1=arg1)传递到 Synology DSM 中的 Docker 容器运行命令
- python - 什么机制使 Python lambda 在没有 await 关键字的情况下工作?
- java - 使用杰克逊注释将 LocalDate 转换为“dd/MM/yyyy”
- python - 为什么我的数组返回重复的单个值
- r - 无法安装 survminer:包是在 R 3.5.3 下构建的
- algorithm - 如何使用外部查询调用支持 CYPHER 投影的过程