我正在使用这个库从 mp3 中读取字节:
List<byte> bytes = new List<byte>();
try
{
using (WmaStream str = new WmaStream(mp3File, new WaveFormat(RATE, 8, 1)))
{
bytes.Capacity = (int)str.Length * 2;
byte[] buffer = new byte[str.SampleSize * 2];
int read;
while ((read = str.Read(buffer, 0, buffer.Length)) > 0)
{
for (int i = 0; i < read; i++)
{
bytes.Add(buffer[i]);
}
}
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
}
return bytes.ToArray();
问题是它有时会抛出OutOfMemoryException
. 我不知道究竟是什么导致了这个问题,但我认为它往往会这样做,尤其是在阅读大型 mp3 文件时。
知道如何解决这个问题吗?
注意:有趣!当我将平台目标更改为 x64 而不是 x86 时,问题消失了!