音量控制計(jì)劃
在Vista之前,所有對(duì)應(yīng)用程序的控制都是系統(tǒng)級(jí)的——當(dāng)你用wave volumn API改變音量的時(shí)候,你會(huì)同時(shí)改變硬件(聲卡)的音量,因此會(huì)影響系統(tǒng)中所有的應(yīng)用程序。這樣做的問題在于,對(duì)于絕大部分應(yīng)用程序來說,這是完全錯(cuò)誤的行為。該行為是老的Windows 3.1音頻架構(gòu)的傳統(tǒng)行為,在Windows 3.1的音頻架構(gòu)中,同一時(shí)間只允許一個(gè)應(yīng)用程序播放聲音,而在這種情況下,由于只有一個(gè)硬件音量,所以是有意義的。
在Win98的WDM音頻驅(qū)動(dòng)在發(fā)布之后,微軟添加了內(nèi)核模式音頻混合器,但是他卻把音量控制架構(gòu)獨(dú)立了出來。Windows API可以做的音量控制仍然是硬件音量控制,這么做的理由很簡(jiǎn)單:雖然每個(gè)應(yīng)用程序確實(shí)需要單獨(dú)的音量控制,但在Win98架構(gòu)中,無法將一個(gè)獨(dú)立的音頻流和一個(gè)特定應(yīng)用程序關(guān)聯(lián)在一起,作為替換,音頻流是單獨(dú)處理的。
事實(shí)上,大部分應(yīng)用程序確實(shí)需要單獨(dú)控制他們音頻流的音量,它們不想(也不需要)與其他應(yīng)用程序混作一團(tuán),這其實(shí)是音頻架構(gòu)所導(dǎo)致的一個(gè)十分不好的副作用。
對(duì)于一些應(yīng)用程序來說,我們是有解決方案的。例如,如果你使用的是DirectSound(或者DirectShow,實(shí)際上,DirectShow是基于DirectSound實(shí)現(xiàn)的),你可以把你的音頻流放入一個(gè)輔助緩沖,因?yàn)镈Sound輔助緩沖是有自己的音量控制的,這樣就可以有效地為每一個(gè)應(yīng)用程序提供單獨(dú)的音量控制。但這對(duì)于那些不使用DirectSound的應(yīng)用程序沒有任何幫助,它們只能依賴于調(diào)整硬件音量。
對(duì)于Vista而言,有一樣?xùn)|西被作為新的音頻架構(gòu)的一部分部署,那就是組件,叫做“音頻策略”。策略引擎的一項(xiàng)任務(wù)就是跟蹤哪個(gè)音頻流屬于哪個(gè)應(yīng)用程序。
舉辦培訓(xùn)班5期次 在vista中,每個(gè)音頻流都與一個(gè)\"音頻會(huì)話\"(audio session)關(guān)聯(lián),音頻會(huì)話則是與一個(gè)進(jìn)程關(guān)聯(lián)的(每一個(gè)進(jìn)程可以有多個(gè)音頻會(huì)話,音頻會(huì)話則可以跨越多個(gè)進(jìn)程,但是默認(rèn)情況下,每個(gè)音頻會(huì)話是當(dāng)前進(jìn)程中的音頻流集合)
每個(gè)音頻會(huì)話有它自己的音量控制,WASAPI會(huì)提供允許應(yīng)用程序控制音頻會(huì)話的音量的接口。音量控制API還包含了一個(gè)通知機(jī)制,這樣的話,那些需要在音量控制改變時(shí)被通知到的應(yīng)用程序可以實(shí)現(xiàn)這一點(diǎn)——這一機(jī)制允許應(yīng)用程序了解其他人在何時(shí)更改音量。
這一切都很完美,但是這樣的話,我們?cè)撎幚砟切┮延械氖褂糜布袅靠刂疲菂s又不想使用硬件音量控制的程序?
記住我所說的,所有的已有API都被移植,從而直接使用WASAPI。我們也把那些音量控制的API移植為使用WASAPI的音量控制接口。
我們也改變了mixerLine API來使用WASAPI。這稍微有點(diǎn)復(fù)雜,因?yàn)閙ixerLine API也需要我們定義一個(gè)音頻設(shè)備的布局(topology),但是我們已經(jīng)定義了相對(duì)簡(jiǎn)單的布局,這一布局應(yīng)該與現(xiàn)存的硬件技術(shù)相匹配(所有appcompat不應(yīng)該是一個(gè)問題)
這么做的結(jié)果是:默認(rèn)情況下,在Vista Beta 2中,我們將第一次為所有的應(yīng)用程序提供每應(yīng)用程序(per-application)的音量控制
有很小一部分應(yīng)用程序?qū)⑹艿竭@一行為變化的影響,但是我們有一個(gè)機(jī)制來保證需要使用已有API調(diào)整硬件音量的應(yīng)用程序?qū)⒛軌蛟赩ista中順利運(yùn)行,而不用重寫應(yīng)用程序(如果你已經(jīng)發(fā)現(xiàn)某個(gè)應(yīng)用程序無法運(yùn)轉(zhuǎn),你可以馬上聯(lián)系我,我將會(huì)把合適的人引入到這場(chǎng)討論中)。
查看本文來源
哈爾濱哪家男科好杭州割包皮手術(shù)多少錢
銀川醫(yī)院哪婦科好
- 熬豬油時(shí),只會(huì)加鹽還不夠!多加3所發(fā),豬油潔白香濃,放1年不會(huì)壞
- 常見養(yǎng)老詐騙“劇本”,大家轉(zhuǎn)回起來~
- 今年中招,鄭州3所高中校園足球試驗(yàn)班面向各縣市招生150人
- 橫版動(dòng)作闖關(guān)游戲《夜血:復(fù)仇之潮》Steam頁(yè)面團(tuán)購(gòu) 7月11日發(fā)售
- 成年人35歲就開始衰老,保養(yǎng)秘籍速領(lǐng)↓
- 譚仲池|圣誕節(jié)感懷
- 盤點(diǎn)4大不靠妝容黑化的演員,爾晴上榜,最后一個(gè)甚少人認(rèn)識(shí)!
- 在東西湖,一個(gè)注冊(cè)地址可以登記5000家大公司?
- 百億千金“迎娶”42歲鳳凰男:他見識(shí)豐富,可她也不是傻白甜啊!
- 《好好說話》登山隊(duì)熱播榜!4位主演顏值好評(píng),怎料古裝更是驚艷
- 廣東一舉足輕重平臺(tái),上線
- 美隊(duì)軍裝照被僅指蹭熱度?蔡徐坤粉絲引發(fā)網(wǎng)友眾怒!