NAudio.Wave.IWavePlayer.Init 的重载方法匹配

overloaded method match for NAudio.Wave.IWavePlayer.Init

我正在尝试使用下面 link 中的代码在我的 .net 项目中播放声音 http://mark-dot-net.blogspot.co.uk/2014/02/fire-and-forget-audio-playback-with.html 并收到此错误-

错误 1 ​​'NAudio.Wave.IWavePlayer.Init(NAudio.Wave.IWaveProvider)' 的最佳重载方法匹配有一些无效参数 D:\marathiTyping\Marathi Typing\Marathi Typing\AudioPlaybackEngine.cs 26 9 Marathi Typing

错误 2 参数“1”:无法从 'NAudio.Wave.SampleProviders.MixingSampleProvider' 转换为 'NAudio.Wave.IWaveProvider' D:\marathiTyping\Marathi Typing\Marathi Typing\AudioPlaybackEngine.cs 27 27 马拉地语键入 代码看起来像-

using NAudio.Wave;
using NAudio.Wave.SampleProviders;

public int sampleRate, channelCount;

public AudioPlaybackEngine()
  {
    sampleRate = 44100;
    channelCount = 2;
    outputDevice = new WaveOutEvent();
    mixer = new MixingSampleProvider(WaveFormat.CreateIeeeFloatWaveFormat(sampleRate, channelCount));
    mixer.ReadFully = true;
    outputDevice.Init(mixer);
    outputDevice.Play();
  }

public AudioPlaybackEngine(int sRate, int cCount)
  {
    sampleRate = sRate;
    channelCount = cCount;
    outputDevice = new WaveOutEvent();
    mixer = new MixingSampleProvider(WaveFormat.CreateIeeeFloatWaveFormat(sampleRate, channelCount));
    mixer.ReadFully = true;
    outputDevice.Init(mixer);
    outputDevice.Play();
  }

您想要的 Init 版本是 NAudio.Wave 命名空间中的扩展方法,允许您传入 ISampleProvider 而不是 IWaveProvider。如果代码无法编译,可能是您使用的是旧版本的 NAudio。