首页 > 解决方案 > 如何使用 dart/flutter 通过 UDP 流式传输麦克风音频?

问题描述

使用我的程序,我需要能够对着一台设备说话,而我的声音可以在另一台设备上播放。我原本打算使用 TCP 来执行此操作,但后来有人建议我应该使用 UDP 来减少延迟并使音频在通过时听起来更好。但正如标题所说,我怎样才能获取 dart Stream 并通过 UDP 发送它?我知道库中的 TCPSocket对象上有一个函数可以让这很容易,不是 100% 确定它是如何工作的,但我想知道 UDP 是否有类似的东西?我正在使用这个dart:ioaddStream()顺便说一句,用于录制音频的库。我不太确定自己在做什么,并希望有人可以解释如何在 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 发送音频流?

标签: flutterdartaudioudpstreaming

解决方案


你在这里问的基本上是互联网上的语音通信查看 WebRTC及其颤振实现在这里


推荐阅读