首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该传递什么参数来调用该方法C#

我应该传递什么参数来调用该方法C#
EN

Stack Overflow用户
提问于 2012-12-11 01:27:34
回答 1查看 124关注 0票数 0

我想在BufferReady方法的末尾调用频谱方法,但我不知道为什么会出现错误,它告诉我我向它传递了错误的参数。Raw是一个int

代码语言:javascript
复制
  void microphone_BufferReady(object sender, EventArgs e) {
                if (buffer.Length <= 0) return;

                // Retrieve audio data
                microphone.GetData(buffer);

                double[] sampleBuffer = new  double[(Utilities.NextPowerOfTwo((uint)buffer.Length))];
                int index = 0;
                for (int i = 0; i < 2048; i += 2) {
                    sampleBuffer[index] = Convert.ToDouble(BitConverter.ToInt16((byte[])buffer, i)); index++;
                }
        //ERROR UNDER
                double[] spectrum = FourierTransform.Spectrum(sampleBuffer, Raw);// I GOT ERROR HERE
            }

    -----------------------

        public static double[] Spectrum(ref double[] x, int method = Raw)
                {
                    //uint pow2Samples = FFT.NextPowerOfTwo((uint)x.Length);
                    double[] xre = new double[x.Length];
                    double[] xim = new double[x.Length];

                    Compute((uint)x.Length, x, null, xre, xim, false);

                    double[] decibel = new double[xre.Length / 2];

                    for (int i = 0; i < decibel.Length; i++)
                        decibel[i] = (method == Decibel) ? 10.0 * Math.Log10((float)(Math.Sqrt((xre[i] * xre[i]) + (xim[i] * xim[i])))) : (float)(Math.Sqrt((xre[i] * xre[i]) + (xim[i] * xim[i])));
                    return decibel;
                }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-11 01:30:59

Spectrum方法调用的第一个参数添加ref关键字

代码语言:javascript
复制
double[] spectrum = FourierTransform.Spectrum(ref sampleBuffer, Raw);

更新ref关键字状态,该数组应该通过引用频谱方法传递,如果您将在频谱方法中为x赋值,那么这将为microphone_BufferReady方法中的sampleBuffer变量赋值。但是正如Jon在评论中所说的,在这种特殊情况下,ref可以从您的频谱方法定义中删除(但您也必须修改该方法的所有其他调用)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13805979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档