我用陈经韬讲的“如何用Delphi制作录音程序”中的方法用Mediaplayer控件进行录音,可是在每次录音完成之后的新文件的开始几秒总是有一些杂音?每个文件都是这样,只有两三秒的时间请问如何把噪音去除呢???
    请高手或者用这个方法做过的人指教!!!

解决方案 »

  1.   

    分不够的话绝对可以再加!!!
        我单独进行录音时能录音,但是出现了上面的情况,当我把录音的这个功能加到我现在的程序中时却出现了编译无法通过的事情!
    具体是用上面所说的方法先定义一个录音头文件,进行录音,如下错误出现在程序的倒数第五行中的打开文件语句上:
    type
    TWavHeader=record
       rId:longint;
       rlen:longint;
       wId:longint;
       fId:longint;
       fLen:longint;
       wFormatTag:word;
       nChannels:word;
       nSamplesPerSec:longint;
       nAvgBytesPerSec:longint;
       nBlockAlign:word;
       wBitsPerSample:word;
       dId:longint;
       wSampleLength:longint;
    end;
      TForm1= class(TForm)
            .
            .
            .
     implementationprocedure TForm_Main.CreateWav(channels:word;resolution:word;
                 rate:longint;fn:string);
    var
      wf:file of TWavHeader;
      wh:TWavHeader;
    begin
      wh.rId:=$46464952;
      wh.rLen := 36;
      wh.wId := $45564157;
      wh.fId := $20746d66;
      wh.fLen := 16;
      wh.wFormatTag := 1;
      wh.nChannels := channels;
      wh.nSamplesPerSec := rate;
      wh.nAvgBytesPerSec := channels*rate*(resolution div 8);
      wh.nBlockAlign := channels*(resolution div 8);
      wh.wBitsPerSample := resolution;
      wh.dId := $61746164;
      wh.wSampleLength := 0;
      assignfile(wf,fn); {打开对应文件 }
      rewrite(wf); {移动指针到文件头}
      write(wf,wh); {写进文件头 }
      closefile(wf); {关闭文件 }
    end;
       中的那个assignfile(wf,fn);语句编译不通过并出现了下面的错误提示:   "There is no overloaded version of 'AssignFile' that can be called with these arguments"   请教各位高手如何解决,分不够可以再加,直到大家满意!
      

  2.   

    问题找到了,主要是那条assignfile(wf,fn);语句和我用的一个串口控件Turbopower Async Professional发生了冲突,当我把那个控件删除之后就没事了,请教这种情况怎么解决!!!!
      
      请大家出主意了!!!
      

  3.   

    将那个assignfile(wf,fn)改成system.assignfile()就可以!