gpt4 book ai didi

c# - 当我运行包含NAudio lib的程序时,出现以下错误,表明(WaveInterop.mmioStringToFOURCC)无法访问

转载 作者:行者123 更新时间:2023-12-03 02:15:47 31 4
gpt4 key购买 nike

当我运行包含NAudio库的程序时,出现以下错误,“由于其保护级别而无法访问”。

public void ReadWaveHeader(Stream stream)
{
this.dataChunkPosition = -1;
this.waveFormat = null;
this.riffChunks = new List<RiffChunk>();
this.dataChunkLength = 0;

BinaryReader br = new BinaryReader(stream);
ReadRiffHeader(br);
this.riffSize = br.ReadUInt32(); // Read the file size (minus 8 bytes)

if (br.ReadInt32() != WaveInterop.mmioStringToFOURCC("WAVE", 0))
{
throw new FormatException("Not a WAVE file - no WAVE header");
}

if (isRf64)
{
ReadDs64Chunk(br);
}

int dataChunkID = WaveInterop.mmioStringToFOURCC("data", 0);
int formatChunkId = WaveInterop.mmioStringToFOURCC("fmt ", 0);

// Sometimes a file has more data than is specified after the RIFF header
long stopPosition = Math.Min(riffSize + 8, stream.Length);

最佳答案

如果您正在制作Windows应用程序,则不能调用mmioStringToFOURCC。 NAudio 1.7 NuGet package包含不调用mmioStringToFOURCC的预览质量的Windows应用商店程序集。但是,NAudio的Windows Store支持尚未完全完成。

如果您是因为尝试从NAudio外部调用WaveInterop.mmioStringToFOURCC而表示编译错误,则因为WaveInterop是NAudio内部的,所以您不能这样做。并非所有NAudio内部组件都可以在外部看到,以使API的总体表面积减小。您可以轻松地将互操作签名放入您自己的代码中:

[DllImport("winmm.dll")]
public static extern int mmioStringToFOURCC([MarshalAs(UnmanagedType.LPStr)] String s, int flags);

关于c# - 当我运行包含NAudio lib的程序时,出现以下错误,表明(WaveInterop.mmioStringToFOURCC)无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264836/

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