2

如何使用 NAudio 将 WaveStream 转换为字节数组?

4

3 回答 3

2
public static class StreamExtension
{
    public static byte[] ToArray(this Stream stream)
    {
        byte[] buffer = new byte[4096];
        int reader = 0;
        MemoryStream memoryStream = new MemoryStream();
        while ((reader = stream.Read(buffer, 0, buffer.Length)) != 0)
            memoryStream.Write(buffer, 0, reader);
        return memoryStream.ToArray();
    }
}
于 2013-01-23T14:11:26.977 回答
1

你可以试试这个愿景,应该为你工作,试试看

  MemoryStream memoryStr = new MemoryStream();
            while ((read = stream.Read(buffer, 0, buffer.Length)) != 0)
                memoryStr.Write(buffer, 0, read );
于 2013-01-23T14:25:29.997 回答
0

你像使用它一样使用它System.IO.Stream。使用读取方法。但要记住。如果您将整个流转换为 ONE Bytearray,它可能会导致和OutOfMemoryException. 这取决于流有多大。但是你可以使用这样的东西:

byte[] buffer = new byte[stream.Length];
int read = stream.Read(buffer, 0, buffer.Length);
于 2013-01-23T14:07:10.567 回答