用命令mediaplayer1.startrecording;提示出错。
是不是需要开辟一个空间保存录音文件?用savedialog又怎样将录音的文件保存起来?
请指教!不胜感激!!

解决方案 »

  1.   

    我知道放savedialog,关键是笨的不知道怎么编程实现保存录音的文件,还是得问?
    能不能举个例子啊?拜托了^_^
      

  2.   

    首先,你要建一个带Wave文件头的一个.wav文件,在这个文件头中指定wave的采样格式,如采样速率、采样位数等!然后用MediaPlayer打开,就可以开始录制了。关于Wave文件头格式你可以到Google去查!
      

  3.   

    请参考:
    http://www.csdn.net/develop/Read_Article.asp?Id=9778
      

  4.   

    干脆用第三方控件来实现录音功能,比如:mmtools,我有控件,也有录音的源程序,如果要的话,可以留下email。
      

  5.   

    你好,我非常想要这个源程序,请你务必告诉我,太感谢了
    我的email:[email protected]
    再次感谢
      

  6.   

    有控件的各位大虾能否给小弟一份啊?
    [email protected]
    最好是有个Demo程序阿
    不胜感激
      

  7.   

    struct TWavHeader
    {
      long int rId;
      long int rLen;
      long int wId;
      long int fId;
      long int fLen;
      Word wFormatTag;
      Word nChannels;
      long int nSamplesPerSec;
      long int nAvgBytesPerSec;
      Word nBlockAlign ;
      Word wBitsPerSample;
      long int dId;
      long int wSampleLength;
    };//---------------------------------------------------------------------------
    void CreateWav(Word channels,Word resolution, long int rate,char* fn)
    {
      FILE *wf;
      TWavHeader wh;  wh.rId = 0x46464952; //wh.rId := $46464952;
      wh.rLen = 36;
      wh.wId = 0x45564157;
      wh.fId = 0x20746d66;
      wh.fLen = 16;
      wh.wFormatTag = 1;
      wh.nChannels = channels;
      wh.nSamplesPerSec = rate;
      wh.nAvgBytesPerSec = channels * rate * (resolution / 8);
      wh.nBlockAlign = channels*(resolution / 8);
      wh.wBitsPerSample = resolution;
      wh.dId = 0x61746164;
      wh.wSampleLength = 0;  wf=fopen(fn,"wb");  if(wf != NULL)
      {
         fwrite(&wh,1,sizeof(TWavHeader),wf);
      }
      else
      {
         ShowMessage("Can not Open File!");
       }
       fclose(wf);
    end;
    }//---------------------------------------------------------------------------
    void __fastcall TForm1::btn1Click(TObject *Sender)
    {
      if( FileExists("Temp.wav") ) DeleteFile("Temp.wav");  CreateWav(1,16,8000,"Temp.wav");  mp1->DeviceType = dtAutoSelect;
      mp1->FileName = "Temp.wav";
      mp1->Open();
      mp1->StartRecording();  mtimes = 3;
      mmo_result->Lines->Clear();
      mmo_result->Lines->Add("开始录音...");
      lb_status->Width = 0;
      tmr1->Enabled = true;}//---------------------------------------------------------------------------
    void __fastcall TForm1::btn2Click(TObject *Sender)
    {
       Sleep(500);
       mp1->Stop();
       mp1->Save();
       mp1->Close();
      

  8.   

    关键是你要先创建并打开一个wav文件,再录音,他就会录进你打开的那个文件里去了。