首先,要做的是將撥放的音頻檔的波形顯現出來,這個部分在老師上課的時候有提到過,所以還是實做最麻煩了,在毫無頭緒的情況下還是丟關鍵字去餵Google,於是,我找到有關WAV檔在BCB上的討論,作業6中我開WAV檔的方式是使用MediaPlayer去寫,而要找聲音的波形也可以用MediaPlayer來寫。
雖然Google上的資料有解釋波形,但要怎寫還是另一回事。 下面的程式碼就把波形抓到手!
f14_4_2->Refresh();
f14_4_2->Canvas->TextOut(10,400,IntToStr(f14_4_2->Srb->Position) );
divx=StrToInt(f14_4_2->Edit1->Text);
divy=StrToInt(f14_4_2->Edit2->Text);
f14_4_2->Canvas->MoveTo(0+dx,-data[0]/divy+dy);
f14_4_2->Canvas->Pen->Color=clBlue;
for(int i=1;(i
讀取波形的時候,或許是因為我的音樂檔案太大了,所以掃描一整段花了不少時間,而下面的X軸和Y軸比例也是,只要我動到裡面的數值時,就要整個重新掃一次。
好!接著就是做出音量控制的功能了!在Google的搜尋下,很快的我就找到了抓到WAV的音量及控制音量大小的方法!
===================================================
waveOutGetVolume(0, &Volume);
waveOutSetVolume(0, Volume);
===================================================
上面的2行程式能控制WAV音量,控制它也就相當控制了音量大小。 但是短短的這2行只能取出音量設定,還需要其他程式才行。另外程式中我用Bar這個元件做為控制音量大小的按鈕,但是寫程式時一直遇到即使寫好之後聲音還是不能控制,之後才發現我一直沒有把抓到的東西寫到Bar裡...
SetVolume(0,TrackBar1->Position*10); 這就是把值給寫進去!
最後,經過7小時的奮鬥,程式終於完成!作業7收工!
(備註:Google搜尋請打:BCB 音量控制,前面幾篇就可以看到相關的討論文章!)
其實, 我要你們做的不是控制音量, 而是改變檔案中訊號的強度(就是音量)...
回覆刪除拍謝= =
回覆刪除我會錯意以為要做的是音量控制就跑去做那部分了Orz