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

請教使用sndPlaySound函數也聽不到聲音的問題

答題得分者是:dllee
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-30 01:14:13 IP:63.84.xxx.xxx 未訂閱
請教各位前輩﹒ 小弟使用MMSystem的sndPlaySound函數也聽不到聲音﹐這是什么問題﹖程式碼如下﹕ procedure TForm1.Button2Click(Sender: TObject); begin If Not OpenDialog1.Execute then Exit else sndplaysound(pchar(opendialog1.FileName), SND_ASYNC); end; (在Uses語句中已經有使用MMSystem) 另外﹐請教此函數中暫停聲音播放和循環播放的語法是什么﹖ 謝謝﹗ 努力,相信會獲得美麗! 忻晟
------
忻晟
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-30 07:17:42 IP:61.224.xxx.xxx 未訂閱
暫停 sndPlaySound(nil,SND_ASYNC);    循環 sndPlaySound(pchar(opendialog1.FileName), SND_ASYNC + SND_LOOP);    看起來,用法沒錯,不清楚為何不行? speaker 有開嗎?  另外,您可以試試 >沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-30 15:09:53 IP:63.84.xxx.xxx 未訂閱
謝謝版主﹒    小弟的Speaker當然是有開啦 不過還是不行﹐另外﹐我有使用版主所說的 > 請問這是何原因呢﹖ 努力,相信會獲得美麗! 忻晟
------
忻晟
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-30 21:52:18 IP:63.84.xxx.xxx 未訂閱
請教各位前輩﹒ 小弟仔細檢查了一下有關的程式碼﹐應該沒有問題﹐在Play的時候如同上面所述的﹐只會發出'叮'一聲﹐而后就什么聲音也沒有了﹐是否是函數的Uses錯誤呢﹖小弟在Uses語句中加入了MMSystem﹐不知這樣是否正确﹐dllee前輩所說的PlaySound函式也是Uses MMsystem嗎﹖Uses語句如下﹕ uses MMSystem, Windows, ... 謝謝﹗ 努力,相信會獲得美麗! 忻晟
------
忻晟
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-30 23:53:32 IP:61.224.xxx.xxx 未訂閱
在 BCB 中是要 include  mmsystem.h  在 Delphi 中應該是 uses MMSystem 沒錯, 我自己在使用時(BCB)
  TMemoryStream *stm=new TMemoryStream;
  stm->LoadFormFile(OpenDialog1->FileName);
  PlaySound((PCHAR)stm->Memory, 0, SND_ASYNC | SND_MEMORY);
並沒有任何問題,Delphi 的話: 先 Create TMemoryStream 再
  stm.LoadFormFile(OpenDialog1.FileName);
  PlaySound((PCHAR)stm.Memory, 0, SND_ASYNC   SND_MEMORY);
如果不行,說真的,我不知道為什麼不行! 您確定『音量控制』中 『Wave』那一項是否有設到靜音或是音量已調到最小了所以聽不到呢? 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-31 11:32:36 IP:63.84.xxx.xxx 未訂閱
謝謝dllee版主﹒ 當小弟使用函數來播放.WAV檔就可以﹐但播放MIDI檔就不行﹐會出現以上幾篇所述的情形﹐是否有其它方法的參數問題呢﹖ 再請教此兩種函數中﹐停止的語法是什么﹖ 感謝不吝賜教﹗ 努力,相信會獲得美麗! 忻晟
------
忻晟
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-01 00:08:50 IP:61.224.xxx.xxx 未訂閱
暫停/停止 sndPlaySound(nil,SND_ASYNC);    循環 sndPlaySound(pchar(opendialog1.FileName), SND_ASYNC + SND_LOOP);    暫停/停止 PlaySound(Nil, 0, SND_ASYNC); 播放 PlaySound(pchar(opendialog1.FileName), 0, SND_ASYNC + SND_FILENAME); 循環播放 PlaySound(pchar(opendialog1.FileName), 0, SND_ASYNC + SND_FILENAME + SND_LOOP);    這兩個函式應該只能播放 .WAV 檔吧,如果您要播放 MIDI 請參考:    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/midi_4ywj.asp    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-01 00:18:46 IP:63.84.xxx.xxx 未訂閱
引言: 暫停/停止 sndPlaySound(nil,SND_ASYNC); 循環 sndPlaySound(pchar(opendialog1.FileName), SND_ASYNC SND_LOOP); 暫停/停止 PlaySound(Nil, 0, SND_ASYNC); 播放 PlaySound(pchar(opendialog1.FileName), 0, SND_ASYNC SND_FILENAME); 循環播放 PlaySound(pchar(opendialog1.FileName), 0, SND_ASYNC SND_FILENAME SND_LOOP); 這兩個函式應該只能播放 .WAV 檔吧,如果您要播放 MIDI 請參考: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/midi_4ywj.asp 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
感謝dllee版主﹒ 再請教您暫停/停止的函式有'0'与沒有'0'的區別是什么呢﹖ 還有循環函式中有無'0'和'SND_FILENAME'有何區別呢﹖ 努力,相信會獲得美麗! 忻晟
------
忻晟
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-08-01 07:32:57 IP:61.224.xxx.xxx 未訂閱
沒有區別,只是叫用的函式不同,用法不同而已。 如果您要使用 Windows API,請您一定要參考 MSDN    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mmfunc_9uxw.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mmfunc_4uzo.asp    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-08-01 11:31:33 IP:63.84.xxx.xxx 未訂閱
引言: 沒有區別,只是叫用的函式不同,用法不同而已。 如果您要使用 Windows API,請您一定要參考 MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mmfunc_9uxw.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mmfunc_4uzo.asp 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
謝謝dllee版主﹒ 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-05-09 1:04:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!