關於MediaPlaer的錄音問題 |
答題得分者是:領航天使
|
biau
一般會員 發表:25 回覆:32 積分:21 註冊:2003-02-27 發送簡訊給我 |
我使用MediaPlayer錄音的功能,每按一次錄音Button [1],
MediaPlayer1->Length就增加一段,我只想保留最後錄進去那一段
之前錄的不要留在檔案內,請問以下寫法可不可以修正成我要的功能??
錄音Button [1]
===================================
MediaPlayer1->Open();
MediaPlayer1->AutoOpen=true; MediaPlayer1->FileName="C:\test.wav";
MediaPlayer1->DeviceType=dtWaveAudio;
MediaPlayer1->StartPos=0; MediaPlayer1->StartRecording(); 停止錄音並存檔Button [2]
===================================
float BreakPosition;
BreakPosition=MediaPlayer1->Position;
MediaPlayer1->EndPos=BreakPosition;
MediaPlayer1->Stop();
MediaPlayer1->Save();
MediaPlayer1->Close();
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
存檔時才給檔名
Mediaplayer1.filename:='c:\wav\' format('.4d',[spinedit1.value ]) '.wav';
Mediaplayer1.Save;
Mediaplayer1.close;
Mediaplayer1.filename:='';
Mediaplayer1.open;
錄音時要Close
Mediaplayer1.close;
Mediaplayer1.filename:='';
Mediaplayer1.open;
Mediaplayer1.Startrecording; 用的是Delphi的語法,請自行翻成BCB語法 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
biau
一般會員 發表:25 回覆:32 積分:21 註冊:2003-02-27 發送簡訊給我 |
首些感謝您回答我的問題,我試了一下無法運作
BCB在按下Button1後無法造出test20.wav檔
(我讓MediaPlayery在FORM出現,當按下Button1開始錄音時,MediaPlayery 上的STOP不會自動Enable)
不知道哪出了問題.... Button1--->錄音鍵
Button2--->錄音停止鍵 void __fastcall TForm1::Button1Click(TObject *Sender)
{
MediaPlayer1->Close();
MediaPlayer1->FileName="";
MediaPlayer1->Open();
MediaPlayer1->StartRecording();
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender)
{
MediaPlayer1->FileName="test20.wav"; //Delphi內是MediaPlayer1->filename:="c:\wav\" format(".4d",[spinedit1.value]) ".wav";;
MediaPlayer1->Save();
MediaPlayer1->Close();
MediaPlayer1->FileName="";
MediaPlayer1->Open();
}
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 首些感謝您回答我的問題,我試了一下無法運作 BCB在按下Button1後無法造出test20.wav檔 (我讓MediaPlayery在FORM出現,當按下Button1開始錄音時,MediaPlayery 上的STOP不會自動Enable) 不知道哪出了問題.... Button1--->錄音鍵 Button2--->錄音停止鍵 void __fastcall TForm1::Button1Click(TObject *Sender) { MediaPlayer1->Close(); MediaPlayer1->FileName=""; MediaPlayer1->Open(); MediaPlayer1->StartRecording(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { MediaPlayer1->FileName="test20.wav"; //Delphi內是MediaPlayer1->filename:="c:\wav\" format(".4d",[spinedit1.value]) ".wav";; MediaPlayer1->Save(); MediaPlayer1->Close(); MediaPlayer1->FileName=""; MediaPlayer1->Open(); }好奇怪, 我之前的程式都是這樣寫都可以正常Work, 現在測試怎結果與您相同? 我再試看看? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
我試過了
要先做一個空的WAV檔.如empty.wav檔
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; Delphi的語法請自行改為BCB ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
biau
一般會員 發表:25 回覆:32 積分:21 註冊:2003-02-27 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 已經解決錄音的問題了!!!謝謝你..... 不過我在執行階段要如何產生(用TMediaPlayer)test.wav這樣空的WAV檔 因為我在完成這個Form後,會將這個Form後裝成ActiveX的元件 放在Server上,供user連結進入..... 因為剛入門,問的問題不成熟還請見諒!!多次承蒙協助,謝謝這個我也還不會, 也是我傷腦筋的地方, 我再想辦法試看看! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 已經解決錄音的問題了!!!謝謝你..... 不過我在執行階段要如何產生(用TMediaPlayer)test.wav這樣空的WAV檔 因為我在完成這個Form後,會將這個Form後裝成ActiveX的元件 放在Server上,供user連結進入..... 因為剛入門,問的問題不成熟還請見諒!!多次承蒙協助,謝謝要由程式產生空的WAV檔很簡單,您可以先將現有的 test.wav 這樣的「空WAV檔」在 DOS 模式下執行: tdump test.wav >test.bin 這樣就會產生文字檔的 test.bin 其內容是 test.wav 轉成 ASCII 的型式,再加工後(取中間 16 進制)作成 char szTestWav[]={0x01, 0x02, 0x03,...}; 的一個大陣列放在您的 code 中,執行時可以利用 fopen 等函式或 TFileStream/TMemoryStream 將這個陣列存檔。 如果覺得 tdump 產出的結果不好處理,也可以自己寫一個。 沒空更新的網頁... http://coolsite.to/dllee C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
今天正好有空檔,就順手寫了一個,反正自己也常常在用,以前我都是使用漢書來自動轉的,現在自己寫一個來轉也是蠻方便的。
參考:
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=27279 沒空更新的網頁...
http://big5.to/吃軟也吃硬 C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw
http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 今天正好有空檔,就順手寫了一個,反正自己也常常在用,以前我都是使用漢書來自動轉的,現在自己寫一個來轉也是蠻方便的。 參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=27279 沒空更新的網頁... http://big5.to/吃軟也吃硬 C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....感謝分享 請問是不是可以用將.wav產生為資源檔 再將資源檔加入.EXE執行檔中 再由程式從自身的資源資料中讀出??? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
引言: 感謝分享 請問是不是可以用將.wav產生為資源檔 再將資源檔加入.EXE執行檔中 再由程式從自身的資源資料中讀出??? ~~~Delphi K.Top討論區站長~~~報告天使大人,使用資源檔也是可以的,站內已有多篇文章討論使用資源檔放入怪東東 < > 陣列的方法算是老舊比較不需要技術的方法,在沒有資源檔的環境中也可以使用 ... 沒辦法,這已經小弟慣用的老方法... 雖然知道資源檔也可以用,但是總是不會第一個想到它 < > 沒空更新的網頁... http://big5.to/吃軟也吃硬 C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |