Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VOIP服务器和客户端尝试出错_C#_Voip_.net 4.0_Naudio - Fatal编程技术网

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

C# VOIP服务器和客户端尝试出错,c#,voip,.net-4.0,naudio,C#,Voip,.net 4.0,Naudio,您好,我正在创建一个VOIP客户端和服务器,它比我预期的要好,因为我认为我第一次尝试时不会听到任何声音。但事实上,在我创建的一个类中,我的程序抛出了一个异常,该类简化了发送音频字节并实时播放它们的套接字过程。代码如下: // public function member of class DataArgs public void PlayRealTimeAudio() { WaveOut o = new Wave

您好,我正在创建一个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();
        }

如果你需要我显示更多的代码,请询问,我会很高兴给你看

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

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

中,如果在
o.Init
中引发异常,您应该向我们显示
o.Init
,指示引发异常的代码行。o.Init来自NAUDIO库,我没有代码,但我可以为您提供准确的ex异常消息:AlreadyAllocated调用waveOutOpen如果在
o.Init
中引发异常,您应该向我们显示
o.Init
,表明引发异常的代码行。o.Init来自NAUDIO库,我没有代码,但我可以给您确切的异常消息:AlreadyAllocated调用waveOutOpen