線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1473
推到 Plurk!
推到 Facebook!

Tchart 繪聲音波形

尚未結案
huei_brother
一般會員


發表:36
回覆:15
積分:10
註冊:2004-08-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-29 10:18:33 IP:211.76.xxx.xxx 未訂閱
我参考板上文章把聲音檔讀入然後想把波形用Tchart畫出但是都會出現以下問題所以想請大家幫個忙
  char *cpHeader;
  int iSampleSize;
  short *pVoiceBuffer;
  long lSamplingRate,lFileSize;
  short sBitsPerSample,sChannels;
  
  OpenDialog->InitialDir="D:\\";
  if(OpenDialog->Execute()==false)
    {
     OpenFiles->Enabled=true;
     return;
    }
  sOpenFileName=OpenDialog->FileName;
  f= new TFileStream(sOpenFileName,fmShareDenyWrite);
  cpHeader= new char[44];
  f->ReadBuffer(cpHeader,44);      f->Seek(22,soFromBeginning);
  f->Read(&sChannels,sizeof(short));      f->Seek(24,soFromBeginning);
  f->Read(&lSamplingRate,sizeof(long));
  
  f->Seek(34,soFromBeginning);
  f->Read(&sBitsPerSample,sizeof(short));      f->Seek(40,soFromBeginning);
  f->Read(&lFileSize,sizeof(long));      if(sBitsPerSample==8)
    {
      iSampleSize=lFileSize;
    }
  else if(sBitsPerSample==16)
    {
      iSampleSize=lFileSize/2;
    }
  else
    {
      return;
    }
  pVoiceBuffer= new short[iSampleSize];
  f->Seek(44,soFromBeginning);
  f->ReadBuffer(pVoiceBuffer,lFileSize);
  
  //畫圖
  int i,yValue;
  for ( i = 0 ; i < lFileSize; i ++)
    {
      yValue =pVoiceBuffer[i] ;
      Chart1->Series->AddY(yValue,"",clRed);
    }
huei_brother
一般會員


發表:36
回覆:15
積分:10
註冊:2004-08-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-29 10:28:28 IP:211.76.xxx.xxx 未訂閱
hjj1103
一般會員


發表:3
回覆:26
積分:5
註冊:2002-11-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-09 15:12:57 IP:61.219.xxx.xxx 未訂閱
最後一行 Chart1->Series->AddY(yValue,"",clRed); 改成 Series1->Add(yValue,"",clRed);
系統時間:2024-05-03 1:00:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!