小编Chu*_*man的帖子

NAudio-如何仅将正弦波发送到插孔上的一个音频通道

我从以下位置获取了Visual Studio 2010的现有单声道(非立体声)NAudio示例:

http://mark-dot-net.blogspot.com/2009/10/playback-of-sine-wave-in-naudio.html

并将其更改为具有两个声道的立体声音频,如下所示:

public abstract class WaveProvider32 : IWaveProvider 
{ 
  public WaveProvider32() : this(44100, 2) // Was 44100, 1
  {
  }
.
.
. 
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将正确的采样值放置在缓冲区的第一个浮点中并将零放置在缓冲区的第二个浮点中时,我期望在右声道上得到正弦波,而在左声道上没有音频。

我在左通道和右通道上看到相同频率的正弦波相位偏低10倍。

是由于某种信号流失还是我不理解代码应如何工作?

这是我如何更改WaveProvider32的示例:

public class SineWaveProvider32 : WaveProvider32 
{
.
.
.
public override int Read(float[] buffer, int offset, int sampleCount) 
{ 
  int sampleRate = WaveFormat.SampleRate; 
  for (int n = 0; n < sampleCount; n += 1) 
  { 
    buffer[n+offset] = (float)(Amplitude * Math.Sin((2 * Math.PI * sample * Frequency) /    sampleRate)); 

    buffer[n+offset+1] …
Run Code Online (Sandbox Code Playgroud)

c# trigonometry codec naudio

5
推荐指数
1
解决办法
1844
查看次数

标签 统计

c# ×1

codec ×1

naudio ×1

trigonometry ×1