錄音後如何把前後空白刪除只有留有錄音的部份? |
尚未結案
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
請教各位前輩:
我要寫一個錄音程式,必
須把前後的空白刪除只有留有錄音的部份 請教各位前輩我因該如何作??
我在討論區中有找到錄音的方法如下,但要如何前後的空白刪除只有留有錄音的部份/?
-----------
open前要先載入 開始錄
Mediaplayer1.close;
Mediaplayer1.filename:='c:\empty.wav';
Mediaplayer1.open;
Mediaplayer1.Startrecording; 存檔
Mediaplayer1.filename:='c:\test.wav';
Mediaplayer1.Save;
Mediaplayer1.close;
Mediaplayer1.filename:='c:\empty.wav';
Mediaplayer1.open;
--------------------------- 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆
°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒
﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
引言: 請教各位前輩: 我要寫一個錄音程式,必 須把前後的空白刪除只有留有錄音的部份 請教各位前輩我因該如何作?? 我在討論區中有找到錄音的方法如下,但要如何前後的空白刪除只有留有錄音的部份/? ----------- open前要先載入 開始錄 Mediaplayer1.close; Mediaplayer1.filename:='c:\empty.wav'; Mediaplayer1.open; Mediaplayer1.Startrecording; 存檔 Mediaplayer1.filename:='c:\test.wav'; Mediaplayer1.Save; Mediaplayer1.close; Mediaplayer1.filename:='c:\empty.wav'; Mediaplayer1.open; --------------------------- 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.找到資料的位置,8 byte 的 127 代表無聲 16 byte 為 0 至於接近 127/0 的一個上下範圍可以視為雜音,大小你自己決定 值到大於該值後表示為正常聲音資料,再加以紀錄即可 |
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
既然你說你程度不好
那就改由先存檔 在將之開啟來加以處理後在存檔 Mediaplayer1.filename:='c:\Temp.wav'; 先用一個檔案暫存 .... var
aFile,nFile: TFileStream;
開檔
aFile.LoadFromFile('C:\Temp.wav'); 存檔
aFile.SaveToStream(nFile);
aFile.Position := urPosition;
nFile.SaveToFile('c:\Temp.wav'); 辨識 如果是 8 byte 用 Byte(aFile.Memory[xx]) 來辨識
16 byte 用 SmallInt(aFile.Memory[xx]) 到了 資料數值大於雜音定義時 就記下當時位置 urPosition := aFile.Position 來去頭
至於去尾用 turcate(aFile.Handle) 至於 wave 的格式 可以在 開檔 aFile.LoadFromFile('C:\Temp.wav'); 後,辨認格式, 相關資料在 http://www.wotsit.org/ 找到 以上只是演算法則,作業的大致流程,至於函數或呼叫可能會有錯字,你要自己查一查
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |