【BCB】連續撥放兩段音效的問題 |
尚未結案
|
yserics
一般會員 發表:10 回覆:9 積分:3 註冊:2003-08-12 發送簡訊給我 |
各位先進,我有如下的問題:
我要做的動作是:依序播放一句英文sentence的中文及英文發音,在播放音效的同時,還允許使用者能夠輸入此英文文句…
我使用 MediaPlayer,並使用其 OnNotify 事件,在將兩段發音檔依序調用 MediaPlayer 來播放時,如果將 MediaPlayer->Wait 設為 true 的話,則使用者就不能在播發音的同時也可以輸入,所以我使用了一個 queue 及一個 counter,如果判斷現在 MediaPlayer 正在播聲音的話,就將要播放的音效檔加入 queue 中,產生 OnNotify 事件時,再從 queue 中抓第一個出來撥放。我寫的程式如下:
void TForm1::playWmaSound(char * file) { if (FileExists(file)) { playCount ; // 記錄現在有幾個發音檔正在或正等著播放 if (playCount>1) { addToPlayQueue(file); } else { MediaPlayer1->FileName = file; MediaPlayer1->Notify = true; MediaPlayer1->Open(); MediaPlayer1->Play(); } } } void TForm1::addToPlayQueue(char * file) { // queue現在問題來了,當我連續播放兩段音效檔時: playWmaSound(file1); playWmaSound(file2); 它只會撥放 file2 ! 我甚至在 OnNofity 事件中將 playCount 及現在正在撥放的音效檔名 show 出來,發現總共產生一個file1的OnNotify及二個file2的OnNotify事件… 有誰能告訴我那裡做錯了嗎?或是有誰知道如果要連續撥放的話,該如何做? 我在版上已找了很多篇相關的文章,也試過了其方法,但至目前為止還沒有試成功過… 感謝感謝… YS. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |