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

本文关键字:出错 客户端 服务器 VOIP | 更新日期: 2023-09-27 17:49:42

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

        // 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();
        }

p。如果你需要我展示更多的代码,请问,我很乐意展示给你。

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

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