最近我在做一个C#调用dll的实验,
采用MATLAB写了录音函数的m文件,内容如下:
function ys0=luyin0(fs)
ys0=wavrecord(3*fs,fs,'int16');
然后我编译成C#可调用的动态连接库voicerecord.dll
但是在c#中调用时却实现不了录音功能,而在MATLAB中运行可以实现录音,
还请各位大侠指教,
该怎样在C#中写代码调用voicerecord.dll,并实现录音功能,
谢谢!

解决方案 »

  1.   

    http://wenku.baidu.com/view/f0b8dff67c1cfad6195fa754.htmlhttp://www.cnblogs.com/gis_zhou/articles/1546217.htmlhttp://www.cnblogs.com/GIS_zhou/articles/1547939.html
      

  2.   

    感谢xingyuebuyu的回答,我后来试着改了下程序,如下:
    [color=#0000FF]function record()
    fs=8000;        %音频采样频率为8000HZ
    nbits=16;
    format='int16';
    Text='0a'; %录音文件名称
    duration=5;
    waveFile='F:\语音训练与测试波形文件\';  %录音文件保存路径
    waveFile=strcat(waveFile,Text,'.wav');
    y=wavrecord(duration*fs,fs,format);
    y1=double(y);   
    y2=(y1-mean(y1))/(2^nbits/2);
    wavwrite(y2,fs,waveFile);
    end

    编译成dll文件,在C#中可以调用,录音时能生成波形文件,但是打开波形文件时却没有录下的声音,这是为什么呢?