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

為何停止播放wave時會出現這樣的訊息?

答題得分者是:nlj859
yachyn
一般會員


發表:4
回覆:1
積分:1
註冊:2003-12-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-17 01:24:31 IP:211.76.xxx.xxx 未訂閱
請問各位大大, 為何我在停止循環的聲音時會出現這樣的訊息? 是因為我有什麼設定沒做嗎?    以下是我的原始程式, 麻煩請大大指點我~~謝謝~~ __fastcall TForm1::TForm1(TComponent* Owner)         : TForm(Owner) {    Edit1->Text = "1";    int a = StrToInt(Edit1->Text);    if ( a == 1 )       playsound(a); } //-------------------------------------------------------------- void TForm1::playsound(int index) {    MediaPlayer1->FileName =              "C:\\Program Files\\Windows NT\\Pinball\\SOUND1.WAV";    MediaPlayer1->Open();    MediaPlayer1->Play(); } //---------------------------------------------------------------- //聲音停止按鈕 void __fastcall TForm1::Button2Click(TObject *Sender) {    MediaPlayer1->Stop();    MediaPlayer1->Close(); } //---------------------------------------------------------------- //觸發Notify,讓wave循環 void __fastcall TForm1::MediaPlayer1Notify(TObject *Sender) {    MediaPlayer1->Play(); } //---------------------------------------------------------------- 遇見,遇不見都這麼巧
------
遇見,遇不見都這麼巧
nlj859
資深會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-17 02:13:11 IP:219.80.xxx.xxx 未訂閱
Hello yachyn,    你使用
//觸發Notify,讓wave循環
void __fastcall TForm1::MediaPlayer1Notify(TObject *Sender)
{
   MediaPlayer1->Play();
}
來重覆播放,這樣關也關不起來. 可以把
MediaPlayer1->Close();
放到FormClose就可以了. 另外,我重覆播放的方式是用Timer搭配聲音或影像長度來控制:
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label1->Caption=MediaPlayer1->Position;
Label2->Caption=MediaPlayer1->TrackLength[1];    if (Label1->Caption==Label2->Caption)
   MediaPlayer1->Play();
}
所以全部的程式碼如下:
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edit1->Text = "1";
int a = StrToInt(Edit1->Text);
if (a==1)
  playsound(a);
}
//--------------------------------------------------------------
void TForm1::playsound(int index)
{
MediaPlayer1->FileName ="C:\\Program Files\\Windows NT\\Pinball\\SOUND1.WAV";
MediaPlayer1->Open();
MediaPlayer1->Play();
}
//----------------------------------------------------------------
//聲音停止按鈕
void __fastcall TForm1::Button2Click(TObject *Sender)
{
MediaPlayer1->Stop();
}    void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
MediaPlayer1->Close();
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Label1->Caption=MediaPlayer1->Position;
Label2->Caption=MediaPlayer1->TrackLength[1];    if (Label1->Caption==Label2->Caption)
   MediaPlayer1->Play();
}
請參考看看. 發表人 - nlj859 於 2004/08/17 02:17:41
yachyn
一般會員


發表:4
回覆:1
積分:1
註冊:2003-12-07

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