gpt4 book ai didi

c# - 如何使用 NAUDIO 进行 VoIP

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:11 27 4
gpt4 key购买 nike

我正在使用 NAUDIO 开发一个 voip 服务器-客户端应用程序和套接字。

我已经阅读了 naudio 的文档并且我已经尝试了很多从麦克风获取数据然后将其发送到客户端的东西,你可以获得数据,但是你必须先将它保存到字节数组然后发送它几乎就像使用 TCP 发送文件一样。

如何使用 UDP 协议(protocol)从 naudio 获取数据并同时将其“流式传输”到客户端。

提前致谢。

最佳答案

如果您下载源代码,NAudio 在示例中有一个网络聊天演示,它很好地展示了如何实现一个非常简单的聊天应用程序。

基本上虽然你希望客户做的是这样的:

void Initialize() 
{
waveIn = new WaveIn();
waveIn.BufferMilliseconds = 50;
waveIn.DeviceNumber = inputDeviceNumber;
waveIn.WaveFormat = codec.RecordFormat;
waveIn.DataAvailable += waveIn_DataAvailable;
waveIn.StartRecording();
...
}

void waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
//Encode and send e.Buffer
}

有了这个,你每 50 毫秒(或者无论你设置缓冲多长时间)得到一个字节数组并将它发送到服务器。但是,您需要对其进行编码,因为发送未编码的声音会占用太多带宽。 NAudio 有自己的编解码器,所以这应该不是什么大问题。参见 here用于 NAudio 的网络聊天演示。

另一件需要考虑的事情是,如果您计划实现客户端到客户端的 voip(通过 p2p 或通过服务器本身流式传输)是一个很好的网络库来处理所有通信。我用过 Lidgren在一个运行良好的类似项目上。它是开源的,但可以轻松设置以满足您的需求。

关于c# - 如何使用 NAUDIO 进行 VoIP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19723988/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com