Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net NAudio网络流媒体_.net_Audio_Streaming_Mp3_Naudio - Fatal编程技术网

.net NAudio网络流媒体

.net NAudio网络流媒体,.net,audio,streaming,mp3,naudio,.net,Audio,Streaming,Mp3,Naudio,我用NAudio开发了一款可以播放mp3文件的应用程序,我花了几天时间试图通过网络将声音发送到另一台电脑,但我不知道有什么更好的方法可以做到这一点。 我需要使用哪些类来访问缓冲区,以及如何重新构建要在远程环境中播放的字节数组?最好是发送MP3帧,还是发送原始或pcm数据更好 我真的迷路了,任何帮助都将不胜感激。 谢谢我建议以MP3的形式通过网络传输,而不是PCM,因为PCM文件比MP3大得多 最新版本包括一个播放internet MP3收音机的演示(在NAudioDemo项目中),它将向您展示如

我用NAudio开发了一款可以播放mp3文件的应用程序,我花了几天时间试图通过网络将声音发送到另一台电脑,但我不知道有什么更好的方法可以做到这一点。 我需要使用哪些类来访问缓冲区,以及如何重新构建要在远程环境中播放的字节数组?最好是发送MP3帧,还是发送原始或pcm数据更好

我真的迷路了,任何帮助都将不胜感激。
谢谢

我建议以MP3的形式通过网络传输,而不是PCM,因为PCM文件比MP3大得多

最新版本包括一个播放internet MP3收音机的演示(在NAudioDemo项目中),它将向您展示如何接收MP3帧,解压缩它们,并将它们放入BufferedWaveProvider中进行播放。我已经在我的博客上写过这是如何工作的


NAudioDemo还包括一个网络点对点音频聊天的演示,使用UDP套接字发送音频,尽管MP3不用于压缩。

谢谢,我认为它现在可以工作了,但我仍然有一个问题。谢谢,我认为它现在可以工作了,但我仍然有一个问题。我逐帧读取mp3来播放和发送原始数据,但缓冲区增长很快(它在一个循环中),我得到了缓冲区已满异常。我试图改变缓冲区大小,但显然这不是解决方案。每次bufferedWaveProvider读取一个块时,我都试图读取下一帧,但在这种情况下,缓冲区中的数据不足,无法很好地播放文件。(太慢了)。你能帮我吗?谢谢。快速而简单的解决方案-只需执行一个线程。当您的bufferedWaveProvider中有太多内容时,请睡眠,并等待它关闭。更好的解决方案是将MP3帧放入队列。然后,另一个线程监视bufferedWaveProvider,当它变低时,从队列中弹出一个MP3帧,将其解压缩并粘贴到bufferedWaveProvider中。最后,在添加字节之前,我用一个简单的“如果”来控制bufferedWaveProvider的长度。。。我认为我的最后一个问题是平移声音,因为我不使用WaveChannel,但我认为由于平移SampleProvider,我可以修复它。再次感谢!