首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MemoryStream读取数据时SoundPlayer崩溃

从MemoryStream读取数据时SoundPlayer崩溃
EN

Stack Overflow用户
提问于 2018-03-20 23:51:41
回答 1查看 192关注 0票数 0

我正在制作一个小应用程序,它从另一个应用程序接收数据,并逐个部分地播放它接收到的声音。

这是我正在做的模拟:

代码语言:javascript
复制
        var soundPlayer = new  SoundPlayer();
        var buffer = new byte[2048];
        using (var fileStream = File.OpenRead(filePath))
        {
            var iOffset = 0;
            while (true)
            {
                try
                {
                    iOffset = fileStream.Read(buffer, iOffset, buffer.Length);
                    if (iOffset == 0)
                    {
                        Console.WriteLine("Offset end.");
                        break;
                    }

                    var memoryStream = new MemoryStream(buffer, 0, buffer.Length);
                    soundPlayer.Stream = memoryStream;
                    //soundPlayer.Load();
                    soundPlayer.Play();

                    Thread.Sleep(TimeSpan.FromSeconds(10));
                }
                catch (Exception exception)
                {
                    Console.WriteLine(exception.Message);
                    break;
                }
            }

它将文件按部分读取到内存流部分(每5秒2048字节-连接延迟模拟)

soundPlayer.Play()方法之后,应用程序在没有跳到异常代码块的情况下崩溃。

我做错了什么?

有谁能帮帮我吗?

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2018-03-21 21:23:16

我认为你不能那样使用SoundPlayer。从documentation of the SoundPlayer class

配置为从流或URL加载.wav文件的SoundPlayer必须在播放开始前将.wav文件加载到内存中。

如果您希望能够接收分块的音频流,则需要使用另一个库。我可以推荐NAudio。另请参阅这篇文章,发布Play audio from a stream using C#

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

https://stackoverflow.com/questions/49388679

复制
相关文章

相似问题

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