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

關於TMediaPlayer播放音效的一些問題

答題得分者是:老大仔
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-04-27 09:01:06 IP:122.116.xxx.xxx 訂閱
小弟在播放音效遇上幾各問題想請各位大大

1.小弟希望播放音效是播放程式的子目錄下的音效檔
然後我在FileName 設定 \MUSIC.WAV 像這樣設定都不會正確播放
只能選擇 C:\XXXX\XXXX\MUSIC.WAV這樣子

2.因為音樂檔案只有10秒左右
小弟希望如何設各回圈讓他不斷播放
以下是小弟程式碼

[code delphi]
if IntToStr(RecordCount) > '0' then
begin
Form1.Man_player.Open;
Form1.Man_player.Play;
end;
[/code]


3.迴圈播放之後再寫一各BUTTON 讓使用者聽到音樂之後
前往手動關閉 (達到通知的效果)

以上三各問題 在煩請各位大大幫幫忙了 感激...
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-04-27 13:28:03 IP:218.80.xxx.xxx 訂閱
1.你把MUSIC.WAV放在和Exe文件所在的目录下,在filename下面,就直接设为'music.wav'就可以了。或者用extractfilepath(application.exename)+'\music.wav'‘应该也可以啊。
2,3可以这么实现,你可以试试看

[code delphi]
MediaPlayer1.FileName:='Demo.wav';
MediaPlayer1.Open;
MediaPlayer1.Notify:=True;
MediaPlayer1.Play;
...

procedure TForm1.MediaPlayer1OnNotify(...);
begin
If MediaPlayer1.Position=MediaPlayer1.Length then
begin
MediaPlayer1.Rewind;
MediaPlayer1.Play;
end;
end;

[/code]
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-04-27 15:26:23 IP:59.114.xxx.xxx 未訂閱
第一點:只要把音樂檔放在與執行檔同一個資料夾下即可

第二點:您要的”不斷播放”是指--”持續播放”(往下一個音樂檔播放)呢? 還是”重覆播放”呢?
假如是重覆播放的話,樓上的語法已經可以供參考了

第三點:照您這樣看來,應該是無法停止吧?姑且把您的意思當成”停止播放”來看
您只要把Man_player屬性中的AutoEnable設為False,然後再把VisibleButtons屬性中的所有按鈕都設為False但是要把btStop設為True
這樣就可以了,而且看來就是個Button囉~再來您要把它擺哪就都隨意囉~

以上都實際測過,可行

另外
也可以這樣寫:

if MediaPlayer1.Position=MediaPlayer1.Length then
begin
MediaPlayer1.Position:=0;
MediaPlayer1.Play;
end;
編輯記錄
老大仔 重新編輯於 2009-04-27 15:28:42, 註解 無‧
lovemari
中階會員


發表:134
回覆:224
積分:76
註冊:2005-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-04-27 16:13:47 IP:122.116.xxx.xxx 訂閱
Dear 兩位大大

感謝妳們的指教

我的所有問題 二樓大大都已經幫我解決了

至於停止的部份 我寫了一各bitton

procedure TForm1.Button9Click(Sender: TObject);
begin
MediaPlayer1 .Stop;
end;

MediaPlayer 就已經有各stop可以用囉~~

另外我有各額外小插曲想請教

關於上述的開關音效 我想再做一各額外更上階層的開關
假設比喻做 "喇叭插頭"

假設有"喇叭插頭"有插上電源 程式跑起來 音效才會發出聲響
假設沒有插上 "喇叭插頭" 程式跑起來 即使有達成播放音效的條件 喇叭也無聲了

那我想把這各喇叭插頭的功能寫成一各Button
開啟的時候 當有後續的動作 就播放音效
關閉的時候 不管後續動作有沒有達成 都不播放

有四種狀態

1.喇叭插頭Button 開啟 達成我下的SQL條件 播放音效
2.喇叭插頭Button 開啟 條件未達我下的SQL 不放音效
3.喇叭插頭Button 關閉 達成我下的SQL條件 不放音效
4.喇叭插頭Button 關閉 條件未達我下的SQL 不放音效

是否能這樣做呢??
------
Program : Delphi 7
DataBase : Oracle 9i
Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2009-04-27 16:20:46, 註解 無‧
lovemari 重新編輯於 2009-04-27 16:21:18, 註解 無‧
系統時間:2017-12-15 12:38:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!