首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试VOIP服务器和客户端出错

尝试VOIP服务器和客户端出错
EN

Stack Overflow用户
提问于 2011-04-11 03:12:21
回答 1查看 480关注 0票数 1

嗨,我正在创建一个VOIP客户端和服务器,它比我预期的要好,因为我认为我第一次尝试不会听到任何声音。但实际上,我听到自己的声音大约一两秒钟,直到我的程序在我创建的一个类中抛出一个异常,这个类是为了简化发送音频字节并实时播放它们的套接字过程。代码如下:

代码语言:javascript
复制
        // public function member of class DataArgs 
        public void PlayRealTimeAudio()
        {

                WaveOut o = new WaveOut();
                o.DeviceNumber = 0;
                o.DesiredLatency = 500;
                Stream s = new MemoryStream(this.Buffer);
                Raw.RawSourceWaveStream raw = new Raw.RawSourceWaveStream(s, new WaveFormat(16000, 2));
                o.Init(raw); // Exception throws here after hearing my voice for a brief moment
                o.Play();
                o.Stop();
                o.Dispose();

            return;
        }


        // Within the Form1 class
        void listener_Streaming(System.Net.Sockets.TcpClient sender, DataArgs e)
        {
            byte[] buf = new byte[e.Length];
            buf = e.Buffer;
            e.PlayRealTimeAudio();
        }

附言如果你需要我显示更多的代码请提出,我会很高兴给你看。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-14 14:13:26

通常的做法不是不断地打开和关闭WaveOut设备,而是让单个WaveOut设备不断地从BufferedWaveProvider (在最新的NAudio代码中提供)中播放和获取数据。然后,在listener_streaming中,您只需将接收到的字节添加到BufferedWaveProvider

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5614059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档