全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1204
推到 Plurk!
推到 Facebook!

找*.wav的格式

尚未結案
whatare
一般會員


發表:2
回覆:3
積分:1
註冊:2005-04-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-11 20:45:43 IP:218.160.xxx.xxx 未訂閱
我爬了很多文,已經知道*.wav的格式前四十四個byte是存放*.wav的檔頭,後四十四個byte才是聲音的資料,但是…我要怎麼用BCB把*.wav後四十四個byte輸出,也就是說輸出到BCB裡的Edit元件,請問可以幫我嗎?! 發表人 -
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-11 22:00:35 IP:218.168.xxx.xxx 未訂閱
whatare您好: 請將您的程式碼po上來讓前輩們幫您看看問題在哪邊    順心
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-12 11:19:18 IP:211.20.xxx.xxx 未訂閱
看不太懂你要的是什麼 字面上看來你是要把"聲音的資料"顯示在"Edit元件"中 可是Edit只能顯示文數字,你是要顯示wav的16進位碼嗎 如果是,那就跟wav的格式沒有關係,只要讀檔再把Ascii轉成16進位碼而已 如何要說跟wav的格式有關係,難道你要顯示音波圖 如果是,那就不可能使用EDIT 很矛盾,所以看不懂你要的是什麼??
whatare
一般會員


發表:2
回覆:3
積分:1
註冊:2005-04-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-12 20:23:40 IP:218.162.xxx.xxx 未訂閱
不好意思!我的意思是說…用bcb去讀*.wav但是是用二進位來讀,並且將資料輸出到bcb的edit的元件,因為我要做語音辨識,第一步就是做波形…所以才想請各位大大幫幫我好嗎…
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-12 20:49:19 IP:210.68.xxx.xxx 未訂閱
whatare您好: 請將有問題的程式碼po上來讓前輩們幫您看看問題在哪邊    順心
whatare
一般會員


發表:2
回覆:3
積分:1
註冊:2005-04-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-13 10:59:13 IP:218.160.xxx.xxx 未訂閱
我用bcb寫了以下程式:
//---------------------------------------------------------------------------    #include 
#pragma hdrstop
#include 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
char *filename="0.wav";
FILE *fp;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
        int a,*head;
        fp=fopen(filename,"rb");
        //fread(head,1,128,fp);
        a=fseek(fp,44,0);
        edit->Text=a;
        fclose(fp);
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button2Click(TObject *Sender)
{
        Close();        
}
//---------------------------------------------------------------------------
目的是看*.wav的檔頭,但執行完後edit上只出現0而已,我是哪裡做錯呢?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-13 12:56:10 IP:210.68.xxx.xxx 未訂閱
您好:
引言: 目的是看*.wav的檔頭,但執行完後edit上只出現0而已,我是哪裡做錯呢?
TEdit不適合作多行顯示,所以大都用TMemo,試試下面的code
 
   TMemoryStream *ms = new TMemoryStream();
   ms->LoadFromFile("ringin.wav");
   Byte *pWaveData = (Byte* )ms->Memory;
   for (int i=0; i<44; i  )
   {
      Memo1->Lines->Add(IntToHex(pWaveData[i],2));
   }
   delete ms;
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
whatare
一般會員


發表:2
回覆:3
積分:1
註冊:2005-04-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-15 12:21:47 IP:218.160.xxx.xxx 未訂閱
謝謝大大!我可以找到聲音檔的檔頭了!謝啦
系統時間:2024-05-12 17:24:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!