❶ 大蝦們幫個忙弄一個簡單的c語言程序 可發出聲音
1.發聲,有兩種:
一種主板的小揚聲器,可以發出指定頻率的聲音;
二是通過音效卡的MIDI,發出指定頻率的聲音;
2.標準的C語言不支持發聲的,要調用WINDOWS API子程序才能發聲;
所以,要知道你用的是什麼C語言;
我用的是C++BUILDER,發聲子程序網上可搜到。
❷ 求c語言的老師傅回答!!
可以訪問埠,所用的函數如樓上所說:outport和outportb是向埠輸出,inport和inportb是從埠讀入;
也可以調用DOS中斷,這也經常會用到吧:setvect設定中斷號和服務子程序,中斷服務程序形如void interrupt inter_service(……),注意在硬體上還要向0x20和0x21發送控制字,等等等等……
對於ISA設備,可以直接訪問;對於PCI設備,要讀取BIOS中的PCI存址空間……
總之,你得知道音效卡的解碼地址或者設備標識,不然剛才都是白說。
我沒寫過訪問音效卡的程序,所以只能根據自己相關的經歷提供一些經驗,樓主自己努力!
❸ 如何在C語言中加入聲音
這個不是用一句話兩句話就能說清楚的
播放*.WMA文件的程序,在播放前首先需要在硬體埠210H~260H中查找是否安裝了音效卡,然後根據是否是立體聲,采樣精度的不同來提取聲音樣本,然後通過改寫時鍾中斷並將數據輸出到音效卡數據輸出埠來播放音樂.
建議你最好看一些相關方面的書
❹ 學習軟體製作方面的話 首先要學習什麼 本人已經學習完C語言了,請指教
「本人已經學習完C語言了」
年輕人說話不要這么豪氣沖天。
你會用C語言寫一個基於UDP的P2P軟體嗎?
你會用C語言寫一個圖像處理軟體、實現基本的色調轉換、外形識別、溶解、凸顯等功能嗎?
你會用C語言寫一個硬體驅動程序,通過音效卡輸出任意頻率的聲音嗎?
❺ C語言輸出結果同時發出該結果的聲音
你的函數要配合音效卡驅動的,而且需要相關介面的調用,僅僅一個c語言程序,只有可視化界面,沒有硬體驅動,根本達不到。建議你買個arm板吧,可以試著做出來。
❻ 用c語言編寫 怎麼樣輸出以下圖標
常規問題
問:Unicode和Ansi版本是怎麼回事,用一個更好?
Unicode是統一字元編碼方式,Unicode版本的程序只能運行在NT/2000/XP/2003等新的Windows上,可以解決不同語言的顯示問題,並且由於Unicode在這些系統上有高好的性能,所以當處理大量列表的時候也有很大的幫助。
千千靜聽內部處理字元串時(例如處理標簽或列表時),大量使用系統默認的16位Unicode(即使是Ansi版本也一樣,只是顯示的時候才轉換成Ansi),可以最大限度的提高處理的性能。
問:我是繁體XP的用戶,可以使用千千靜聽嗎?
可以,千千靜聽已經支持unicode,可以在非簡體中文的Windows 2000/XP下使用,千千靜聽的界面不會出現亂碼,但某些只包含ID3v1標簽的MP3文件可能是顯示亂碼,可以嘗試用「文件信息」里的內碼轉換功能來找到正確的內碼。千千靜聽還提供了繁體和簡體之間的標簽和歌詞轉換。
問:安裝新版本的時候,需要先刪除以前的版本嗎?
不用,直接覆蓋安裝就行了,千千靜聽可以兼容以前的參數設置,但某些功能可能因為升級而發生變化,絕大多數設置將繼續有效。
問:為什麼我的電腦上沒有淡入淡出窗口的效果?
淡入淡出窗口以及半透明窗口效果都需要Windows2000或以上的操作系統才能支持。
問:我的窗口不小心拖動屏幕外面了,怎麼辦?
在Windows的系統欄(屏幕右下角的系統時間那裡)右鍵點擊主菜單,選「查看窗口」
下面的「重新排列」,這個對普通模式和迷你模式都有效。
問:我想把千千支持的文件格式默認用千千來打開,怎麼樣最方便?
千千選項的最後一頁「系統關聯」,可以在你想要關聯的某個格式,或某一類格式上打
上勾,並且為這種或這一類格式指定一個文件類型圖標,考慮到不同用戶有不同的喜好,千
千隻提供圖標自定義的功能,而不提供任何很多默認的圖標。
問:為什麼千千靜聽的皮膚這么少?
作者本人不擅長美工,又找不到專業人士幫助千千(因為千千免費)。其實千千靜聽的
皮膚格式是比較簡單的,是基於XML格式的用ZIP壓縮一下而已,有興趣的網友可以自己把皮
膚文件改為.zip後綴後解開來看看,具體請看主頁上皮膚這一頁:<a href= target=_blank></a>
n.htm。
問:為什麼千千靜聽不支持Winamp的皮膚呢?
由於播放器的功能不相同,皮膚的設計和實現也不相同,很多千千靜聽需要的皮膚的元
素Winamp的皮膚里都沒有,例如千千靜聽需要歌詞秀窗口,但Winamp本身就沒有這個窗口的
皮膚。論壇上有不少網友從winamp改造過來的皮膚,有興趣不妨去看一下。
二。播放
問:為什麼在Win98下不支持播放CD?
Win98沒有自帶數字CD讀取所需的驅動,可以到主頁上去下載這個通用的驅動程序,地
址是:<a href= target=_blank></a>
問:為什麼我正在播放CD的時候,就不能轉壓CD為其它格式了?
因為Windows下以數字方式訪問CD是獨占的,所以同時只能由一個任何來訪問CD。如果
你想轉壓,請先停止播放。
問:千千有沒有能自動在線查詢到CD信息的功能?
4.3以後的版本,提供了freedb的在線查詢CD信息的功能,但非正版的CD很可能找不到:
)。
問:為什麼我用Windows Media Player製作的WMA文件無法播放?
Window Media Player在製作WMA文件時默認啟用了數字版權保護機制,而要支持這種
文件,必須得到微軟的官方支持,考慮到手續比較麻煩所以目前還未實現對它的支持。所以
在製作WMA文件的時候請盡量不要使用數字版權保護。
問:回放增益(自動音量)是怎麼回事,應該如何使用?
回放增益信息是通過對音頻文件的掃描分析檢測到的一個最佳的增益值,
在以後的播放中如果使用這個增益值就可以把音頻文件的音量調整到最佳的水平,從而減少
甚至避免不同音頻文件之間的音量差異.
可以通過手動掃描或自動掃描來得到這個信息,手動掃描就是在播放列表上右鍵某些文
件,通過「掃描增益信息」來得到,或者選中千千選項的「播放」頁中的「自動掃描」,這
樣在播放的同時,就會自動掃描沒有這個信息的文件(如果已存在就不會再掃描),但要注
意的是,如果播放被中斷或用戶拖動了播放進度,掃描就會停止,只有完整的播放一遍之後
才能得出這個信息。
問:為什麼我啟用了回放增益以後,有些歌的音量不正常?
增益信息是以文件標簽的形式保存在文件中的,可能是增益信息別的軟體破壞了,所以
導致音量不正常,這時,你需要手動重新掃描一下。
問:千千支持哪些音頻輸出方式?
千千支持Waveout(波形輸出),DirectSound,Kernel
Streaming(內核音頻流),ASIO這四種方式,但在不同的系統和音效卡環境下,並不是每一種
都能支持的,特別是ASIO,更需要音效卡本身的支持,一般只有比較高檔的音效卡才能支持。
問:這些音頻輸出方式各有什麼特點?
Waveout是微軟最早提出的音頻流輸出方式,所以它的兼容性也就好,幾乎所有的音效卡
都支持;
DirectSound是微軟DirectX的一個組合部分,它的兼容性也很不錯,並且在有多個程序
需要播放音頻的時候能提供高可靠的保障,並且使用這種方式可以讓千千靜聽更好的支持聲
音的淡入淡出效果;
Kernel
Streaming是微軟底層使用的音頻流方式,具體更低的延時性,用於對延時性要求比較高的
場和,因為更底層,所以效率更高,而且受別的程序的影響也更小,如果你用它來播放時,
把系統音量里的波型「靜音」,就可以實現只聽到播放器的音樂,而不受其它程序的聲音的
影響。但Kernel Streaming同樣對音效卡和驅動有一定的要求。
ASIO是Steinberg提出來的比較新的音頻流輸入輸出介面,一般用在對實時性要求很高
的專業場合,對音效卡的要求更高。
理論上來說,這四種方式對輸出的音質沒有任何影響,因為這些方式只是把聲音的數字
信號傳輸到音效卡的數模轉換器(D/A),而不會對信息有任何的改變。
問:像AxASIO之類的軟體能讓音效卡不支持ASIO的電腦也使用ASIO,有什麼好處嗎?
AxASIO或ASIO Kernel-Streaming Driver之類的軟體,都是在Kernel
Streaming的基礎上模擬出來的ASIO,所以效果反而沒有直接用Kernel
Streaming好,而且設備不當的話還影響正常的播放。
問:千千使用的MP3解碼器是哪一個?
千千使用的是最新版本的mpg123-0.59s-pre,它是目前已經的開放源代碼中最好的MP3
解碼器之一,無論是精度來是速度都是很出色的。千千早期版本使用的是MAD,但在個人PC
上,MAD的解碼速度比mpg123要慢70%甚至更多,而絕對精確和mpg123相比還略有差距,所以
後來就改用mpg123了。
問:是不是把播放時的緩沖長度設得越高播放越流暢?
一般來說,只要設置1000-2000毫秒的長度就可以了,太長只會增加資源佔用。
問:播放時的輸出比特是越高越好嗎?
不是,目前幾乎所有的音頻源都來自16比特的CD,而且一般的音效卡只支持16比特的輸出
,所以基本上選用16比特就可以滿足絕大多數的要求了,千千的「原始比特」就是指音頻本
身的比特數,因為碰到有些24比特的WMA,千千就會自動選擇24比特輸出。
要注意的是,很多支持ASIO的音效卡,最佳的輸出比特數是32或24,所以這時選擇相對應
的比特數就能提供最佳的性能(因為不需要再做額外的轉換)。
問:采樣頻率轉換一般用在什麼場合?
對於AC』97規范的音效卡(主板自帶的基本上都是這類音效卡),硬體只支持48000Hz這一
種采樣頻率,而CD的音頻是44100Hz的,從CD轉換過來的MP3等大多部格式也是44100Hz的,
也就是說在這種類型的音效卡上,在數字信號轉成模擬信號之前,還要對采樣頻率做一次轉換
,如果驅動程序提供的轉換程序不是很好(據說為了提高性能,都採用比較一般的演算法),
就可以嘗試用播放器提供的軟體轉換功能。但用於這類音效卡來說,本身的輸出音質就不是很
理想,所以用不用更好的轉換演算法意義並不大,而且由於軟體轉換需要CPU做更多的事情,
性能肯定受到影響。
問:高頻抖動又是什麼意思?
一般的音頻編解碼器,都是用高比特來處理16比特的音源的,在最終播放輸出的時候,
又得把高比特降低到16比特來輸出(因為一般的音效卡只支持16比特的輸出),所以就會有量化
的副作用,就好比把一幅真彩的圖片轉成256色,如果轉換的程序不好,就會有大塊的很難
看的色塊出現,於是就產生了一種抖動的技術,就是採用插值演算法,在轉換前用一些隨機的
雜訊來處理一下,以減少量化帶來的副作用。
一般來說,如果音源和輸出時的比特數相同,就不需要再用抖動了。並且抖動只對低於
16比特的輸出比較好的效果。
三。文件標簽
問:什麼是文件標簽,有什麼用途?
文件標簽就是指一個歌曲文件的標題(歌名)、藝術家(演唱者)等的信息,就好像是一個
人的姓名一樣。有了文件標簽,就能准確的知道這首歌的來源,就能通過這些信息准確的本
機或網上查找到相應的歌詞文件。
問:如何填寫或編輯文件標簽?
通過千千的「文件信息」對話框,就能編輯標簽信息。有兩種方法可以顯示這個對話框
:1。在播放某首歌的時候,在主窗口上右鍵的主菜單里選擇「查看窗口」里的「文件信息
」,這時顯示的就是當前正在播放的這首歌的文件信息;2。在播放列表裡選中某首或某些
歌曲,在右鍵菜單中選擇「文件信息」,就能顯示選中文件的信
息了,如果你選的是多首歌,就能同時編輯多首歌的信息。
問:千千支持哪些類型的標簽?
千千幾乎支持所有已知的通用標簽類型,比如對於MP3文件,就支持ID3v1/ID3v2、APE
;對於Ogg文件,就支持Ogg本身的Vorbis標簽;而對於APE、MPC之類的新型文件格式,同樣
支持APE標簽,對於iTunes的MP4/M4A
格式,千千也同樣支持它的標簽類型;要注意的是,WMA的標簽的寫入需要安裝微軟的media
9或更新的版本,但
讀取就不需要任何額外的支持了;而對於RM文件,千千目前只支持最基本的幾個標簽欄位。
問:千千嵌入的歌詞是怎麼回事,和標簽有關嗎?
千千嵌入的歌詞就是以標簽的形式保存在歌曲文件里的,欄位名是Lyrics,對標簽的
操作對嵌入的歌詞
同樣有效。
問:如何在播放列表的歌曲標題里顯示我想要顯示的標簽欄位?
可以在千千選項里的「播放列表」頁里設置「有標簽時的格式」,只要用「%(英文欄位
名)」這樣的字元串就能表示任何你想要顯示的欄位了,當然前提是你得知道這些欄位的英
文名稱,你可以通過上面講到的「文件信息」對話框的「高級模式」來看到所有這個文件里
已存在的標簽欄位的名字和值。
問:某些文件顯示的是亂碼的標簽,有沒有辦法改正?
可以嘗試使用「文件信息」里的內碼轉換功能來找到正確的內碼。?
問:為什麼千千靜聽在列表裡查找文件比較慢?
為了節省資源佔用並且提高文件添加到列表的速度,千千靜聽默認是當播放列表在顯示
某個音頻文件時才會讀取信息,而像foobar2000這樣的播放器則是在第一次添加時就讀取了
所有文件的信息,所以查找時就不需要再讀取了。事實上千千靜聽也提供了和foobar2000
一樣的文件信息操作方式,請在選項里的「播放列表」頁中將讀取信息改為「添加」時,並且選
上「緩存文件信息到播放列表」。?
四.歌詞
問:怎麼使用歌詞秀,為什麼我自己從網上下載的歌詞就不能顯示?
歌詞文件有一定的格式,一般以LRC和TXT後綴,每句歌詞前面有[00:00.00]這樣的時間
標簽,如果沒有這些標簽的歌詞是無法顯示的,可以用千千靜聽自帶的歌詞編輯器來為每句
歌詞加入時間標簽,保存後就可以正常顯示了。建議把歌詞文件以「歌手名 -
歌曲名.lrc」這樣的方式命名,再把存放這些歌詞的目錄加到千千的本地搜索文件夾里,以
後就不用再一一關聯了,當然你的歌曲文件應該也有相應的歌手名和歌曲名信息,這樣才能
保證播放器找到正確的歌詞文件。
問:為什麼歌詞下載會失敗?
有以下幾種可能的原因:
1.文件信息不正確,以至於在搜索時無法正確匹配;
2.歌曲太新,以至於這些歌詞網站都還沒有收集歌詞;
3.如果你安裝了防火牆,可能網路請求被過濾而無法連接到歌詞伺服器;
4.歌詞伺服器可能出現問題,或者正在維護。
問:為什麼沒有讓用戶自己輸入或選擇歌詞網站的功能?
歌詞下載網站的搜索和下載方式都不相同,如果要實現用播放器來自動處理需要編寫相
應的搜索和下載程序,並不是簡單的輸入一個網址就行了。
問:為什麼我下載了正確的歌詞,但下次播放還是顯示錯誤的?
千千載入歌詞的順序是內嵌歌詞-
❼ C語言怎麼使用硬碟顯卡音效卡鍵盤滑鼠
查查什麼 dos高級編程指南吧
實際上這些不是語言的問題,是操作系統和硬體相關的問題啦
❽ C語言輸出'\a'沒聽到響鈴,代碼沒問題啊
是機箱的喇叭(不是你那連接在音效卡上的音箱火耳機)響.
但是現在的很多機器沒有蜂鳴器了.
在你開機的時候, 進Windows前, 是否能聽到"滴~"的一聲呢,
這個就是用來發那個聲音的.
如果你開機的時候靜悄悄, 那就很可能屬於"現代的計算機", 也就是沒有蜂鳴器的了.
❾ 如何用C語言播放音樂
首先要解壓縮音頻文件,這些文件的格式一般都是標准化的可以在網上面找到解壓方法.
然後把解壓得到的音頻數據輸出到音效卡,這里需要硬體I/O操作的知識.把數據送到特定的I/O埠,然後音效卡才能發聲.
❿ 如何用C語言(或C++)關閉音效卡驅動和打開音效卡驅動,求代碼
你是說控制音效卡聲音嗎?
直接用c很麻煩,不過有個變通的方法。
搜索nircmd,下載,這個命令有很多功能,可以使用這個:
增大系統音量2000個單位值 (最大65535) nircmd.exe changesysvolume 2000
降低系統音量5000個單位值 (out of 65535) nircmd.exe changesysvolume -5000
設置系統音量為最大 nircmd.exe setsysvolume 65535
系統音量靜音 nircmd.exe mutesysvolume 1
取消系統靜音 nircmd.exe mutesysvolume 0
改變當前系統靜音設置(靜音和非靜音之間切換) nircmd.exe mutesysvolume 2
main()
{
system("nircmd.exe mutesysvolume 1");
}
這樣就可以是上卡靜音了。