線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1138
推到 Plurk!
推到 Facebook!

如何利用MediaPlayer讓使用者自由更換預設的wav檔案路徑??

尚未結案
skychild
一般會員


發表:2
回覆:2
積分:0
註冊:2003-12-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-24 17:39:50 IP:211.76.xxx.xxx 未訂閱
您好:   我想要利用MediaPlayer讓使用者自由選擇是否更換路徑,如果要用OpenDialog該如何改寫??  抑或是有其他方法??    下面是我的程式,我是包成副程式以便呼叫 void TForm1::playsound(int index) {    MediaPlayer1->FileName="C:\\bird.wav";  //<--這個地方是預設路徑,我想讓使用者可以自己決定是否更換(像是按下Button就會跳出開啟檔案的畫面)    MediaPlayer1->Open();    MediaPlayer1->Play(); }    -- 我是第一次接觸這方面的程式, 還請多多指教!! 非常感謝您的耐心與指導!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-24 18:08:08 IP:210.68.xxx.xxx 未訂閱
skychild您好: 試試
if ( OpenDialog1->Execute())
{
   MediaPlayer1->FileName=OpenDialog1->FileName
   MediaPlayer1->Open();
   MediaPlayer1->Play();
}
P.S: PO程式碼時請參閱版規,使程式碼有排版的效果方便閱讀 順心
skychild
一般會員


發表:2
回覆:2
積分:0
註冊:2003-12-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-25 00:13:42 IP:211.76.xxx.xxx 未訂閱
版主您好:      首先先抱歉沒有看清楚發文的規則, 還有感謝您的答覆與指教!< > 應該是我表達的不夠清楚, 我是希望說, 能不能一開始的時候就保留原有預設路徑, 一直到使用者要變更的時候, 就可以替換掉原路徑... 像是說,利用一個變數名稱取代檔案路徑,如果不要使用原本的檔案路徑,可以藉著更換掉變數而改變檔案路徑... 但是我不知道,該如何利用變數指定檔案路徑,或是有其他方式可以處理這個問題? 祝 順心! < >
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-25 01:18:27 IP:219.80.xxx.xxx 未訂閱
Hello skychild,    目前是以Edit1來存下你目前要播放的檔案.當然你也可以改成你要的變數. 請參考底下程式碼:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Edit1->Text="C:\\bird.wav";
}    void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (OpenDialog1->Execute())
      Edit1->Text=OpenDialog1->FileName;
}    void __fastcall TForm1::Button2Click(TObject *Sender)
{
  playsound();
}    void TForm1::playsound(void)
{
  MediaPlayer1->FileName=Edit1->Text;
  MediaPlayer1->Open();
  MediaPlayer1->Play();
}
發表人 - nlj859 於 2004/09/25 01:24:26
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-25 01:35:27 IP:221.169.xxx.xxx 未訂閱
引言: 版主您好: 首先先抱歉沒有看清楚發文的規則, 還有感謝您的答覆與指教!< > 應該是我表達的不夠清楚, 我是希望說, 能不能一開始的時候就保留原有預設路徑, 一直到使用者要變更的時候, 就可以替換掉原路徑... 像是說,利用一個變數名稱取代檔案路徑,如果不要使用原本的檔案路徑,可以藉著更換掉變數而改變檔案路徑... 但是我不知道,該如何利用變數指定檔案路徑,或是有其他方式可以處理這個問題? 祝 順心! < >
skychild:以下提供妳參考:
AnsiString DIR_PATH=ExtractFilePath(ParamStr(0)); // 程式啟動時的路徑
#include 
mkdir(DIR_NAME.c_str());  // 產生一新目錄
rmdir(DIR_NAME.c_str());  // 刪除一目錄
chdir(DIR_NAME.c_str());  // 移到另一目錄
但妳如使用TOpenDialog。
開檔就如同taishyang版大的方式!
if ( OpenDialog1->Execute()) {
   MediaPlayer1->FileName=OpenDialog1->FileName;
   MediaPlayer1->Open();
   MediaPlayer1->Play();
}
如果妳要使用者每次都要從預設目錄開啟,那妳使用OpenDialog就不可能了!
第一次會按妳預設目錄開啟,但第二次以後?
請更動為以下方式,動態產生TOpenDialog:
Form上一樣放置一個TOpenDialog元件。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString Dir_Path="D:\\";
  TOpenDialog *OpF;
  OpF = new TOpenDialog(this);
  OpF->Filter = "Wav files (*.wav)|*.wav|All files(*.*)|*.*";
  OpF->InitialDir=Dir_Path;
  if ( OpF->Execute()) {
    MediaPlayer1->FileName=OpF->FileName;
    MediaPlayer1->Open();
    MediaPlayer1->Play();
  }
  delete OpF;
}
妳試試看這兩種是不一樣的效果。
Andy Chang
------
Andy Chang
skychild
一般會員


發表:2
回覆:2
積分:0
註冊:2003-12-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-25 16:16:19 IP:211.76.xxx.xxx 未訂閱
非常感謝您們的回覆與指教!! 我的問題已經得到了解決!! 謝謝!    祝 順心
系統時間:2024-05-20 21:21:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!