Turbo pascal 為何無法發聲?

2012-03-04 1:37 am
我已安裝crt, 用到colour 的procedure, 亦用到delay, 但就是用唔到sound.....

我的program 如下:

uses crt;
begin
sound (466);
delay (500);
sound (494);
delay (500);
sound (524);
delay(1000);
sound (262);
delay (5000);
sound (784);
delay (5000); end.

我用了超多個sound, 佢有run到delay
但是run 的時候一D 聲都沒有, 我delay 幾多秒佢就靜音幾多秒......

初時以為喇叭壞了, 擰爆喇叭播歌, 個喇叭一D 問題都冇....
但run 個program 的時候就乜聲都冇 ....
插headphone 試試, 又係乜聲都冇

請問這是出了什麼問題? 有什麼解決方法?
更新1:

很感謝您的解答 我上網找過有關如何在dos模式下繞過windows對硬件作直接控制, 但它們都不是for windows xp 的..... 請問實際我要怎樣做才能令電腦內置喇叭發聲呢....?

回答 (1)

2012-03-04 10:54 pm
✔ 最佳答案
turbo pascal內所使用的sound指令,直接啟動電腦內置喇叭的震盪器,即係開機前的beep一聲那個,不會由聲效卡輸出,即係不是你用windows播歌那個。所以無法有大小聲控制。
另一個大大大大大問題係,windows會把那個內置喇叭的震盪器的硬件『保護』了,你無法由tubro pascal,即假dos模式,去直接作控制。
同一原因,你用tp要直接對io作的控制都無效。即係port[]係冇用。
在純dos模式下你的程式絕對正確。
後記,你可以找一找如何在dos模式下繞過windows對硬件作直接控制。我多年前網上看過一個tp程式示範,可以令sound()正常工作。


收錄日期: 2021-04-26 11:31:36
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20120303000051KK00518

檢視 Wayback Machine 備份