2010年1月15日 星期五

HW6

這次的作業其實與第四次作業差不多,只是將讀BMP檔改為讀WAV檔,不過多了幾句關鍵程式
OpenDialog1->Excute();
MediaPlayer1->FileName=OpenDialog1->FileName;
MediaPlayer1->Open();
MediaPlayer1->Play();
而這次也要顯示檔案信息,不過在維基或是Google我都沒找到分配位元組的方式,可能是我不夠細心吧,而我只找到這個
所以我就跟同學要了張圖片來參考
bytes 0~3 顯示RIFF,RIFF的格式是WAV和AVI的基礎
bytes 4~7 顯示檔案大小
bytes 8~11 顯示檔案類型
bytes 12~15 顯示ASCII識別字,音樂的形式
bytes 16~19 顯示樣本位元,其實我還不太清楚這是什麼
bytes 20~21 照字面翻應該是音頻型式,但顯示出來卻看不太懂
bytes 22~23 顯示聲道,channe即是航道的意思
bytes 24~27 顯示樣本速率
bytes 28~31 顯示位元速率
bytes 32~33 BlockAlign真不知道怎麼翻
bytes 34~35 應該是每秒讀取的大小
bytes 36~39 不知道為什麼會有第2個識別字出現
bytes 40~43 同樣也不知道為什麼會有第2個Size出現
所以我寫的程式就只顯示了我懂的地方,其他真的還要再研究,而寫的方式fread就和第四次作業差不多。
以下是程式執行後的幾個問題:第一,WAV檔一開啟後就直接播放音樂,不知道有沒有辦法能只讀取,然後按下"Play"再播放,還有讀取後元件的"Play"並沒有按下去!

不過還好,把"Play"鍵按下去,他還是正常播放。
第二,我按下"Pause"竟然"Pause"還是亮的,還是可以按"Pause",就變成按第一次-音樂暫停,按第二次-音樂播放,按第三次-音樂暫停,按第四次-音樂播放,就這樣可以無限迴圈,都是按同個"Pause"鍵怎會出現2種功能,不知道是不是BCB原本的問題。




沒有留言:

張貼留言