全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1812
推到 Plurk!
推到 Facebook!

想用TMediaPlayer連續播放2個聲音檔

答題得分者是:wameng
crop
一般會員


發表:33
回覆:9
積分:8
註冊:2004-07-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-17 17:40:27 IP:140.122.xxx.xxx 訂閱
 bool plays=false;
程式片段
//==================================
void __fastcall TForm1::TButton1(TObject *Sender)
{
MediaPlayer_Voice->Close();
MediaPlayer_Voice->FileName="檔案1 ";
MediaPlayer_Voice->Open();
MediaPlayer_Voice->Notify=true;
MediaPlayer_Voice->Play();


if(plays==true)
{
MediaPlayer_Voice->Close();
MediaPlayer_Voice->FileName="檔案2";
MediaPlayer_Voice->Open();
MediaPlayer_Voice->Play();
plays=false;
}

}
//===================================================

void __fastcall TForm1::MediaPlayer_VoiceNotify(TObject *Sender)
{
plays=true;
}








如題..
我想用TMediaPlayer連續播放2個聲音檔
檔案1播放完畢後, 自動播放檔案2
但是程式只會播放檔案2,
請問該怎麼修改呢??
謝謝~~






wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-17 18:29:41 IP:61.222.xxx.xxx 訂閱
Mediaplayer 可能無法播放多檔。除非播完後再播下一個。
可改用 WindowsMediaplayer ActiveX 元件,利用 Import ActiveX 。

這是我用Delphi 測試的程式碼。僅提供參考

<textarea cols="60" rows="10" class="delphi" name="code"> var AList : IWMPPlaylist; AMedia : IWMPMedia; begin AList := WindowsMediaPlayer1.playlistCollection.newPlaylist('MyMusic40'); AList.Clear; AMedia := WindowsMediaPlayer1.mediaCollection.Add('C:\2007-07-13 王力宏-改變自己\02-改變自己.mp3'); AList.appendItem(AMedia); AMedia := WindowsMediaPlayer1.mediaCollection.Add('C:\2007-07-13 王力宏-改變自己\03-落葉歸根.mp3'); AList.appendItem(AMedia); WindowsMediaPlayer1.currentPlaylist := AList; WindowsMediaPlayer1.controls.play; end; </textarea>
編輯記錄
wameng 重新編輯於 2007-07-17 18:36:21, 註解 無‧
wameng 重新編輯於 2007-07-17 18:37:21, 註解 無‧
crop
一般會員


發表:33
回覆:9
積分:8
註冊:2004-07-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-18 17:08:54 IP:140.122.xxx.xxx 訂閱
<textarea class="cpp" rows="10" cols="60" name="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { plays=false; Mp1->Close(); Mp1->FileName="2.mp3"; Mp1->Open(); Mp1->Play(); plays=true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Mp1Notify(TObject *Sender) { if(plays==true) { Mp1->Close(); Mp1->FileName="3.mp3"; Mp1->Open(); Mp1->Play(); } plays=false; } </textarea> 很感謝wameng的回答 我希望的效果就是播完檔案1後, 再播檔案2 已經試出來了~~
系統時間:2024-05-02 21:15:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!