顯示具有 2009hw7 標籤的文章。 顯示所有文章
顯示具有 2009hw7 標籤的文章。 顯示所有文章

2010年1月16日 星期六

HW 7

這次的作業7,想了很久,不過還是沒辦法在最後關頭用出來,

雖然不知道現在到底截止沒,不過看老師還沒在網頁KEY新分數,

來碰個運氣看看。


這次的作業主要是強化第6次作業內容,要可以自由調整

音量,還有Show出音波圖。



在讀取音量這,其實不難,只需waveOutGetVolume

與 waveOutSetVolume 抓取 及 調整設定 即可。



不過音波圖一直發生錯誤,上網看過一些相關資料,

不過還是出現了一些問題,礙於今天從早上補課到傍晚,

所以沒辦法在12點以前上傳,真的是相當麻煩的事情....

先暫時打出目前寫程式的心得,晚點如果有時間再補齊。

HW7

這次作業要讓影音檔至少有放大聲放小聲的功能,老師很直覺的告訴我們將讀出來的資料/2再寫回去就變小聲了,但實際操作後發現fwrite這功能真的不太會用,而且也不太清楚要讀多少byte出來和用多少byte寫入,直覺是讀一個byte/2啦,但fwrite還不能成功所以不到實際上是如何...所以這次作業無法如期繳交了 不過我在寒假會把這份作業寫完再來改Blog的~~(這不是要求加分!!) 現在是因為要趕在12點以前PO出文章 ... 祝大家寒假愉快囉!!!

HW7

  第七次的作業是要撰寫一個可以處理音訊的程式,像是修改聲音大小的功能。 之前聽老師說把裡面的值除以2再放回去,就能將音量變小。初步認為WAV檔在檔頭記憶體45之後是存放所有有關音檔播放的內容,所以應該是會有存放有關音量大小的控制,但卡在程式不知如何開始寫,不知道該如何下手。剛開始的時候還以為好像不會很難,但實際操作後發現還真的不是那麼一回事啊。或許沒有老師的範例程式,就沒有方向了,慚愧呀。
  這一次的作業真的不容易,也在google上爬了好久的文,也找到了這個
控制音量 ,但是試著照上面的說明來打,還是沒有成功,目前我的程式是卡在未定義的"waveOutGetVolume" 和 "waveOutsetVolume" 。 應該是先要設立一個標頭檔,可是不知道該用哪個。
  如果能將這個程式完成的話,就好像我自己完成了一個小型的播放程式,之後我會再利用時間來研究看看 如何來修改聲音的大小,現在只能先打上我作這個作業所碰到的遭遇和心得囉。

HW7

這次的作業,和之前的作業相比,似乎差很多,之前都是用fopen, fread. fseek,而這個作業好像完全不一樣,對我來說毫無頭緒,我和週遭的同學討論,沒有人能做得出一些東西,而且時間又在緊迫的期末,可能也是做不出來的原因之一吧,這次作業比較難一點,也沒有範例程式,而且WIKI裡面也看不出有關程式的東西,只學到樣本用2進位計算可被CPU處理,這使作業難上加難,做不出來也是我太依賴範例程式的關係,不過這程式做出來似乎很有趣,顯示每段的示波圖形,如果載入一首歌,能播放音樂並顯示動態的示波圖形,這樣應該和常用的音樂播放器顯示的示波一樣。
才七個作業我就有兩個作業作不出來,真的應該好好檢討了,並且在寒假完成和完整了解每行程式碼,希望和週遭的同學一起討論,可以的話寄Emai給老師,請老師幫忙解答。

HW7

這學期數媒最後一份作業,進入到嚕音頻編寫
fread出音頻的聲音部分 然後把化成數值減半後再存起來

感覺好混亂 音頻格式內容跟圖檔不一樣,怎看都像亂碼,不知要怎嚜分段
還要讓他能播放出來,對音頻不熟悉就寫不出來....
(想到沒有壓縮的Wav 就這嚜難懂,如果要搞MP3.....)

HW7

  現在是清晨五點半..眼皮好重
  除了考試考完把K書沒睡到的覺補回來外
  就馬不停蹄的趕作業,唉...
  因為在過兩個小時還得在星期六補六節課
  所以這部分的作業沒有充裕的時間達成自己原本的預期
  一想到這裡,上次那些信誓旦旦開作業繳交期限支票的大德們,
  都是靠自己完成的嗎..真不知道該說什麼了

  本來預計要修正出一個正常的WAVE,不過這樣怕連作業七都完成不了
  作業七的部分基礎是修改WAV的音量大小
  沒什麼難度,利用兩個WAV音量控制function
  取得音量的
  waveOutGetVolume(HWAVEOUT hwo, LPDWORD pdwVolume)
  
  以及設定音量的
 waveOutSetVolume(HWAVEOUT hwo, DWORD dwVolume)

  最初腦袋不正常的想利用兩個Button來提高音量跟降低音量
  雖然方法是很特立獨行,但是說實在的如果不做判斷跟額外的資訊提示
  不會比bar系列的元件來的直覺,而本來想用看看沒用過的TrackBar
  但是為了保險,還是直接使用曾經用過的ScrollBar

  步驟也很直覺
  當移動ScrollBar便取得原始的Volume然後加上ScrollBar的值設定音量
  本來神智不清的一移動就取音量然後直接加上ScrollBar的值Set
  然後Run了還覺得奇怪,咦..怎麼聲音加上去就下不來,只能加不能降..
  精神狀況不好的情況下寫程式..事倍功半阿~

  我原本另外想到一種處理方法,idea來源是圖片影像的透明化
  將兩張圖片重疊,把重疊的像素點相加除以2
  本來想實驗看看說,如果把兩個WAV檔案取出data本文音訊資料
  相加除以2會有什麼樣的效果,不知是會有remix的效果還是單純的變魔音..

  



  另外是想要改善的程式碼易讀性,過去修資料結構跟演算法的時候
  還不覺得struct是個好東西,一直到這學期
  其他專研組的同學程式能力大為精進,偶爾偷學兩昭
  剛好這裡派的上用場,就像之前在讀取BMP Header時
  老師有提供BMP的Header Struct結構
  不過因為當時已經自行設定完變數,覺得有些麻煩而且可以執行就好
  就沒去更動程式碼,這次則是因為看已經被精簡過的程式碼似乎
  還有再被精簡的空間,所以就試看看

  而結果算是好壞參半,一次直接計算檔案的總長度,然後把檔案的資料塞進
  設定好的結構當中,不用在對說讀第4 Bytes是啥、讀第16 Bytes是啥
  但是壞在出了點不知是哪問題的狀況

  Header讀取明顯有問題
  以下這張是正常的數值
  


  這張則是錯誤的
  


  從錯誤的方式推斷,猜測是結構中宣告的變數空間過大
  但是結構宣告如下:

struct Header_data{
  char ChunkID[4];     //[0] ChunkID
  long int ChunkSize;   //[4] ChunkSize
  char Format[4];     //[8] Format
  char Subchunk1ID[4];   //[12] Subchunk1ID
  long int Subchunk1Size; //[16] Subchunk1Size
  WORD AudioFormat;    //[20] AudioFormat
  WORD NumChannels;    //[22] NumChannels
  long int SampleRate;   //[24] SampleRate
  long int ByteRate;    //[28] ByteRate
  WORD BlockAlign;     //[32] BlockAlign
  WORD BitsPerSample;   //[34] BitsPerSample
  char Subchunk2ID[4];   //[36] Subchunk2ID
  long int Subchunk2Size; //[40] Subchunk2Size
};

  另外有以ShowMessage(AnsiString(char))
  的方法確認說Byte數是否正確
  確認結果無誤

  
  char   佔 1 Byte,char[4]就佔4 Byte
  long int 佔 4 Byte
  WORD  佔 2 Byte

  每個資訊所佔用的空間大小都正確
  所以這個問題還有待克服..六點十分了,
  如果下課了還有機會的話真想把它DeBug完...

==================================================

  找到其中一部分的錯誤,但是低級錯誤...
  BlockAlign跟BitsPerSample的資訊錯誤部分
  我宣告的4 Byte的Buffer供全部的資訊暫存用
  因為這兩個資訊各佔用2 Byte
  而計算是我是以4 Byte為前提下去計算
  結果導致BlockAlign跟BitsPerSample只覆蓋[0]、[1]的空間
  [2]、[3]還是上一個資訊的值
  丟去計算當然就錯了




  至於另外一部分還是有點問題
  直接看結構,結構自訂變數載入的值都正確


  但是單看自訂變數就會發現莫名其妙的東西..

HW7

這次作業因為那次上課我在第二節結束後請假離開,


所以第三節解說這次作業部份就沒聽到,


寫起來的感覺非常地生手,


不過我還是嘗試去把它寫出來,


不過卻卡在如何顯示它的波形寫法,


雖然我有在Google上找到波形的解釋與它的寫法,


但是別人寫的不一定可以套用到你的程式裡面,


這是我上次作業再次經歷到的經驗,


所以相較於我覺得音量就比波形好寫的太多了,


而且音量的程式碼非常的簡單根本就不用幾行,


後來雖然打出了波形的程式碼,


但是居然是......



全部空白的...根本就沒波形!!


























可能是資料根本就沒跑進去裡面,

只好再研究研究~~~

HW7

第七次作業是要我們做出處理音訊的程式,跟以往的作業有相當大的差異,在網路上找了有沒有相關的資料,看了同學做出來的程式碼才有些些的了解,到最後仍無法自己完成一個程式,時再說是自己的練習不夠,,以下的音頻是用波行的方式呈現,下面是我調整x,y軸後的波行呈現
上圖調整X軸布條動Y軸所呈現的波行。


上圖則是不調動X軸而是調動Y軸後的波行。
雖然這個程式說難好像也沒特別難,只是想到有人可以寫出一個播放程式就很厲害,不知道他們是花費了多少的時間跟精力才有辦法些出這樣一個播放程式,這也算是前人累積的智慧結晶,不過真的很佩服,不然現在怎麼能隨意的聽音樂,隨意的切換大小聲呢?

HW7

1 
Program Name:SourceRIFF
Version:  0.02 alpha

功能:基於0.01載入header,這次增加了顯示其聲音波形的功能

期時花很多時間去想這個作業如何顯示波形
在網路上也翻了很久資料
其實提供的資訊並不多
因為很少人在做這個"基礎"的程式
大部分都是套用API(OpenCV,DirectSourd等等)下去使用

這次做得是透過Canvas底下的MoveTo與LineTo的函數去實做
上個作業有題到取出data的部分並不難
但是後來仔細看文件時並不簡單
像是我目前還是沒有辦法分出所謂的左聲道與右聲道(立體聲的音源)
所以這個作業只有做出混合的版本而已

至於其他的部分(像是fade in fade out)
因為要期末考了所以就沒有深入去研究
也許還寒假時再來仔細研究吧~

話說這次兩個作業又遇到了檔案讀取的問題
遇到了特殊字(像是- 空白字元)的檔名
不知道為什麼為自動跳掉不讀取
新版的BCB對於Unicode的部分真的很敏感
舊版的完全沒有這個問題
不過就長遠看寫unicode的程式不管在哪個語系的機器都不會有執行上的問題
某種角度來看也是件好是吧?

HW7

寫個程式處理音訊,能夠合成歌曲。而且還要做到音樂漸進效果。哇!!光想到就頭大。所以現在的我而言殺了我我也不見得寫得出來...但作業又不能不交。看到同學們都寫出了可以顯示音樂波型的小程式,因此就急忙向同學討教這玩意兒怎麼寫出來的。顯示音訊波型,在各個音訊編輯器中是基礎中的基礎,連播放器有些都會附加這功能了。可是那麼基礎的東西寫起來也沒有那麼容易的說。

HW7-1

執行結果如上

如果我們改變他們的X比例,數字越大會被壓得越密集。

HW7-2

當然Y的部分也一樣。

HW7-3

HW7


這個程式大概是我寫過最瘋狂的的程式之一吧!

我的作業除了印出wav檔頭的資訊外,還新增了一個印出wav波形的功能,
這個波形是我用字元符號"."和"●"去畫的,也因為如此看起來不太好看,
不過這不是重點,重點是這波形到底代表的是甚麼呢?
其實我還不太清楚...((眾歐

說穿了我只是把該wav檔的內容以不同的資料型態去存,
上圖左邊以BYTE資料型態去存,
右半邊以unsigned int去存(存到的數很大)。

接著為了把它以"波形"的樣貌顯示,
我把BYTE變數再減230(實際上大約等於250左右)並印到Memo1上,
波形的話我用AnsiString資料型態用迴圈去累加"."這個符號,
加完後再累加一個"●",如Memo2上所顯示;

再來我又以不同的資料形態去存(unsigned int),
因為存到的數實在太大了,為了要方便顯示波形,
我把unsigned int這變數取4294000000的餘數,再除以10000(會減少4位數),
大概就等於0~100之間(實際上約等於4294000000~4295000000),
接著最後印出波形的部分也跟前面提到的一樣。

以下是我的部分程式碼:

for(int i=0;i<="尾";i++)
{
AnsiString str="";
fseek (ptr,"頭"+i*4,SEEK_SET);
fread(data, 1, 4, ptr);
data[0]=data[0]%4294000000;
data[0]=data[0]/10000;
for(int j=0;j<=data[0];j++)
{ str=str+".";
}
str=str+"●";
Memo4->Lines->Add(AnsiString(str));
Memo3->Lines->Add(AnsiString(data[0]));

}

雖然寫完這程式我知道這可能會與老師的要求不太一樣,
不過我想概念應該差不了太遠才對,就跟圖檔一樣,
除了檔頭部分其他的資料應該就是該圖片的內容,
我們為了要真正看到圖片所長的樣子,才會利用撰寫程式以不同的方式來展現該檔案。
我寫程式時一向很喜歡用很直覺的方式去思考,
反而不太喜歡用內建的函數及物件等等,因為如果是第一次使用的話,
八九成都不太會用,甚至可以說完全不會用!
一定要去查資料來好好熟悉一番,如此才能用的得心應手;
不過其實這也不能說是不喜歡拉,因為有了這些函數及物件等,寫起程式來真的是事半功倍,
畢竟這樣才有利於大型程式的發展阿。
假如沒有這些高階語言,而用類似像低階的組合語言寫(?!)會瘋掉吧。



2010年1月15日 星期五

HW7

這是這學期最後一個作業了,對我來說還是有點困難
有努力想把他想好
但才知道之前部會得太多還是無法獨力完成他
老師要的是聲音越大y軸的起伏就越大
反之則越小
在網路上找了很久都沒看到有人討論音量的修改方式
但是看了那些這麼困難的程式碼我又不太會
這次的程式對我來說算是非常艱難的
因為看了許多同學們的程式並研究
哪些函數是做什麼的也不知道
但是就照著他們的做法去實作自己還是不會
可能自己的程式功力要再加強吧

HK7

這一次做的是把音樂的聲音可以撥放且能調大小
在做了這之前
要能調音量大小之前就必須先把音樂能做正常的播放
當然先從書裡面找有關多媒體的播放來看
當先逐一打完程式之後不知道為什麼就是怪怪的~~





在每次要開始執行按了F9之後就會出現這一串奇怪的警告訊息
就是不知道為什麼?不過還是可以繼續執行也是令我覺得不可思議的地方














1.將音樂檔案開起來















2.播放時的畫面~~














3.當按暫停的時候的畫面

雖然調音量大小從上課中知道他的值去除就可以間接的控制到音量大小
試了半天就是怪怪的怎麼是怎麼錯~~~
在這一個做的音樂播放程式中~~~
雖然可以聽到音樂可以正常的播放出來~
不過也試了好幾種寫法...
試到其中一次進然說我的數值不對
跟顯是錯誤說不是正確的寫法="=
讓我弄到還蠻煩的....XD
不過現在做的播放程式中...
音樂雖然可以播放
不過在聽的時候會出現小瑕疵
就是音樂有點像LAG般
一直頓一直頓...
不過拉ScrollBar也可以跳到指定播放的地方
只是還是會頓頓的~就是不知道為什麼?

HW7

這周的作業非常的讓人感到興奮,是要做出一個程式,除了可以讀取音訊檔案以外,還要寫出任一的功能調整,意思就是做出一個簡易的音訊撥放器,基本上讀取音訊已經難不倒我,在第六周的作業已經學會了如何讀取音訊檔,而這周的作業就是要做出有其他功能的程式,看到很多同學的程式都有把波形圖呈現出來,我也很想做出這樣的程式,畢竟看著波形圖隨著音量的大小 高低會做出不同的變化真的非常吸引人,只可惜實在是沒什麼概念,所以就朝向了最基本的調整音量大小,不過畫面看起來十分的陽春,沒有MEDIAPLAYER這樣的吸引人,但心裡想想APPLE出的ITUNES也不是用華麗的畫面作為賣點,便對自己設計的程式更加的有信心了,其實一直以來大家慣用的播放器我想應該都是內建在WINDOWS裡面的MEDIAPLAYER,雖然不斷的改版,但這個播放器給我的感覺就是只有畫面的進步,基本上控制沒有越來越人性化的趨勢,而ITUNES雖然沒有很酷的畫面,但卻有資料庫的功能,這對於音樂蒐藏家實在是有非常大的幫助,可以直接的在ITUNES編輯管理自己的音樂資料庫,光是這點就絕對可以跟幾乎壟斷這個市場的MEDIAPLAYER分庭抗禮了,不過其實我最有興趣的東西是,撥放器當中的EQ等化器,只要調整數值就可以讓同樣的音訊有不同的表現方式,只可惜程式能力不夠強,不然我真的很想研究這方面的控制

HW7




就先載入一個音樂格式,撰寫一個可以處理音訊的程式。
寫的程式開始讀取檔案例面的內容,
轉換成為波浪圖形,修改聲音大小的功能。
用x,y軸來組成波浪圖形

此次程式作業式可以讀取與顯示WAV音頻檔案中,可以將顯示的方式為使用一個影像元件, 並將
其影像內容顯示於 C++ Builder 的影像元件之中。
開始建立程式介面和對話按鈕可以載入音頻
檔,怎樣把一張音頻檔載入之後,
再點選讀取按鈕,讀取是自己設定撰寫code,
最後檢視檔案的原始內容是否一樣,
可以得到想要讀取結果,
建立能轉換圖檔位元及讀取的函數以及圖片對話窗語法。

HW7

作業七主要是希望我們做出一個可以處理音訊的程式,意思是就像我們平常用來聽音樂的ipod一樣,要有類似ipod的功能,例如是調整音量大小,改變播放方式,甚至是強化各種特效等等,這個作業主要就是作業六的延伸,作業六先是要我們學會如何在BCB上面製作讀取WAV檔以及播放,接下來就是讓我們學會如何去增加這一個應用程式的功能。
我看很多人的作業在圖片的呈現方面上,都有顯示波形,可是對我來說,困難的就是,要怎麼樣在播放音樂的過程中,讓它有效果化的功能,呈現出音量大時振幅增大,音量小時振幅變小,就是要有像是心電圖那樣的效果,但是到底要怎麼去做,才能讓這個處理音訊的程式像活著一樣,隨著音樂的高低起伏變化而改變呢?上網去找資料,網路上的資料雖然不少,但是真正能讓我完全理解的卻不多,有些太過於高深,看了卻不知道該從哪裡開始下手。真的是越學到後面越覺得艱深,明明就是一些英文,數字,標點符號的排列所呈現出的程式碼,可是卻怎麼也沒辦法很輕易的理解它到底在做什麼?
其實以我的想法來說,如果要有調整音量大小的功能,我會先做一個類似轉盤的開關,越往右轉,音量越大,反之,音量越小,可是要怎麼在BCB介面上呈現轉盤就是個問題,要輸入怎樣的程式碼也是個問題,還有如果要以播放方式來做改變的話,我大概想到的是要輸入一些有關數學的亂數排列選擇的公式,讓它在播放的過程中隨機去選取歌曲,可是一樣的問題,要怎麼讓輸入的公式有效地呈現出我要的結果呢?

HW7

終於可以寫最後一個作業了(淚目),為什麼開頭第一句就這樣說,因為這是我寫最久的一次程式,從下午3點開始寫到晚上10點才寫完,整個不眠不休寫到眼睛都快爆掉了,真的沒想到多2個程式就快把我搞死了...好啦!趕快來寫完這最後的心得吧!


首先,要做的是將撥放的音頻檔的波形顯現出來,這個部分在老師上課的時候有提到過,所以還是實做最麻煩了,在毫無頭緒的情況下還是丟關鍵字去餵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;(iWidth*divx)&&(i<(FileLen-dd)/2-1);i++) f14_4_2->Canvas->LineTo(i/divx+dx,-data[i+f14_4_2->Srb->Position]/divy+dy);





讀取波形的時候,或許是因為我的音樂檔案太大了,所以掃描一整段花了不少時間,而下面的X軸和Y軸比例也是,只要我動到裡面的數值時,就要整個重新掃一次。


好!接著就是做出音量控制的功能了!在Google的搜尋下,很快的我就找到了抓到WAV的音量及控制音量大小的方法!

===================================================
waveOutGetVolume(0, &Volume);
waveOutSetVolume(0, Volume);
===================================================
上面的2行程式能控制WAV音量,控制它也就相當控制了音量大小。 但是短短的這2行只能取出音量設定,還需要其他程式才行。另外程式中我用Bar這個元件做為控制音量大小的按鈕,但是寫程式時一直遇到即使寫好之後聲音還是不能控制,之後才發現我一直沒有把抓到的東西寫到Bar裡...
SetVolume(0,TrackBar1->Position*10); 這就是把值給寫進去!




最後,經過7小時的奮鬥,程式終於完成!作業7收工!

(備註:Google搜尋請打:BCB 音量控制,前面幾篇就可以看到相關的討論文章!)

HW7

作業七要我們控制撥放音樂的大小聲,
老師說要將聲音變大聲只要將它成二就可以變大聲,
變小生只要除與二就可以,但是我不知道怎麼將音樂播放出來,
所以我到老師的部落格看,發現了PLAYSOUND函數,
可是不知道為什麼COMPILE卻不會過,
可是我一直找不到問題,所以後來我跟同學拿了程式碼來看看,
雖然大部分都看得懂,只不過在最重要撥放的變數卻找不倒是哪個,
起先我是想說只要找到撥放的那個變數,並將它乘上二就可以將它便大聲了,
可是卻沒有辦法,因為我一直找不到那個變數,
我將裡面得變數一一拿來測試,可是仍然找不到,
我想他那個程式碼應該不是利用變數來記錄數值來控制音量的大小,
而且如果照老師的PLAYSOUND函數來看,就算COMPILE過了,
可是我還是不知道要在哪裡乘二才有辦法將它音量變大,
所以我會再跟同學討論,找出寫出來的方法。

HW7

這一次作業是要做調整MediaPlayer播放音樂的音量MediaPlayer並沒有這種功能所以我們必須要

自己手動利用其他API來完成如: waveoutsetvolume
waveoutsetvolume這個API式來控制WINDOWS裡的主音量

再利用BCB元件TrackBar和Edit來完成這個作業

程式碼主要是:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
DWORD volume;
TrackBar1->Max=100;
TrackBar1->Position = waveOUTGETVolume(0, &volume);
TrackBar1->Position = LOWORD(0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
int value = (TrackBar1->Position);
Edit1->Text=value;
waveOUTSETVolume(0, MAKELONG(value, value));
}
//---------------------------------------------------------------------------

這是在網路上看到的範例

TrackBar1->Max=100;
TrackBar1->Position = waveOUTGETVolume(0, &volume);
TrackBar1->Position = LOWORD(0);
這三行是先將TrackBar1設定最定最大最小的範圍和程式一打開的音量多少!!

int value = (TrackBar1->Position);
Edit1->Text=value;
waveOUTSETVolume(0, MAKELONG(value, value));
這三行則是隨著TrackBar1的移動來調整作業系統主音量來完成調整音量的效果!!!

基本程式碼就這樣完成了!!




hw7

這一次的作業是最後一次了,這一次真的比較困難要把聲音的聲波顯示出來,
然後還要調整音量大小,跟第六次的作業有點類似。
但是這一次的對我來說真的是比較困難,不過我每次作業都會去找一找資料,
雖然沒做出來,但是找資料去看一下別人的程式碼也會學到一些東西。
其實那本很厚的BCB使用手冊很有用,雖然學期要結束了,
但是以後還是會有很多機會會使用到他。
上課的時候老師在課堂上講解了有關的概念,也讓我有了一點頭緒,
雖然做不出來,但是已經有了一點完成度,
我覺得這門課培養了我團隊合作的默契,也有了跟同學之間的默契,
小組討論的經驗也讓我在之後的問題可以順利完成。