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。
我正在尝试使用下面 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。