gpt4 book ai didi

c# - 从 MemoryStream 读取数据时 SoundPlayer 崩溃

转载 作者:行者123 更新时间:2023-12-03 01:38:44 27 4
gpt4 key购买 nike

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

这是我正在做的模拟:

        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() 之后没有跳转到异常代码块就崩溃了方法。

我在做什么错?

谁能帮帮我?

谢谢,

最佳答案

我认为你不能使用 SoundPlayer以这种方式。来自 documentation of the SoundPlayer class :

A SoundPlayer configured to load a .wav file from a Stream or URL must load the .wav file into memory before playback begins.



如果您希望能够以 block 的形式接收音频流,则需要使用另一个库。我可以推荐 NAudio .另请参阅此 SO 帖子 Play audio from a stream using C# .

关于c# - 从 MemoryStream 读取数据时 SoundPlayer 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49388679/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com