青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

工作中有個(gè)需求是關(guān)于抓取揚(yáng)聲器的聲音, 為什么會(huì)有這個(gè)需求? 
試想我們?cè)诠蚕磉h(yuǎn)程桌面時(shí),如果能夠把本地桌面應(yīng)用程序的聲音也一起發(fā)給對(duì)方, 用戶體驗(yàn)該是多么棒。

在考慮如何實(shí)現(xiàn)這個(gè)需求前,我們先討論下電腦聲音的三種模式:

1) render模式
該方式實(shí)際上就是播放(output)聲音,常見(jiàn)的API如PlaySound, WaveOutXXX, DirectSound等

2) capture模式
該方式實(shí)際上就是錄入(input)聲音, 也就是我們通過(guò)麥克風(fēng)輸入聲音,常見(jiàn)API如WaveInXXX

3)loopback模式
該方式就是我們需要實(shí)現(xiàn)的方式,即把揚(yáng)聲器里播放的聲音抓取下來(lái)。

對(duì)于上面3種方式,render和capture方式應(yīng)該比較好理解, 也都是系統(tǒng)有API直接支持的方式, loopback方式就比較奇怪了,在XP上該方式系統(tǒng)實(shí)際都沒(méi)有正式支持, loopback的錄制方式實(shí)際上也涉及到CD的版權(quán)問(wèn)題。

下面是XP時(shí)代的Audio架構(gòu)圖, 該架構(gòu)下audio的合成和壓縮都是在系統(tǒng)內(nèi)核里進(jìn)行的:
在XP這種方式下,我們要抓去聲卡播放的聲音沒(méi)有正規(guī)的方式, 一般來(lái)說(shuō)只有2中: 
一種是虛擬聲卡,還有一種就是Hook audio 播放相關(guān)的API (很多時(shí)候我們會(huì)發(fā)現(xiàn)API hook是沒(méi)有辦法時(shí)的全能辦法 ^_^)

但是在Vista之后,微軟修改了原來(lái)的媒體架構(gòu), 以COM的方式重新封裝了core audio API:
可以看到原來(lái)Auido的API (waveXXX, mixerXXX和DirectSound)都依賴下層的新封裝的Core Audio APIs,而且這些APi都工作在用戶模式, 也就是說(shuō)聲音的合成是在用戶模式下通過(guò)軟件實(shí)現(xiàn)的。在Vista之后, 可以看到我們可以單獨(dú)控制每個(gè)應(yīng)用程序的聲音了, 因?yàn)槊柯稟udio都可以工作在不同的Audio session了。通過(guò)新的Core Audio API, 我們可以很容易的實(shí)現(xiàn)聲卡聲音的抓取, 具體可參考這里:http://msdn.microsoft.com/en-us/library/ms679146.aspx

但是很快我們又發(fā)現(xiàn)了另外一個(gè)問(wèn)題, 在一個(gè)網(wǎng)絡(luò)會(huì)議里面, 如果共享自己桌面的人加入了VOIP, 另外也有其他與會(huì)者也加入了VOIP, 與會(huì)者說(shuō)話的聲音會(huì)在共享桌面端播放出來(lái),但是該聲音和共享的應(yīng)用程序的聲音又被一起被抓下來(lái)后發(fā)給了原來(lái)的與會(huì)者, 這樣就有回聲了。

這里就涉及到抓取聲卡聲音時(shí)能否排除掉某個(gè)聲音,可惜答案是系統(tǒng)WASAPI不支持這種方式。但是因?yàn)榕c會(huì)者VOIP的聲音是我們自己播放的,所以我們有該聲音樣本, 理論上我們可以通過(guò)噪聲消除從混音里過(guò)濾掉與會(huì)者的聲音,當(dāng)然這塊知識(shí)太高深,需要專門的人才能做了。
 一些Audio相關(guān)的例子:http://msdn.microsoft.com/zh-cn/subscriptions/downloads/dd316764.aspx

 個(gè)人寫的一個(gè)小Demo: AudioRecord

posted on 2014-08-21 23:34 Richard Wei 閱讀(15092) 評(píng)論(5)  編輯 收藏 引用 所屬分類: windows desktop

FeedBack:
# re: 如何抓取揚(yáng)聲器的聲音
2015-03-23 19:35 | 王小亮
恩,這里代碼不錯(cuò)的。正在學(xué)習(xí)中。  回復(fù)  更多評(píng)論
  
# re: 如何抓取揚(yáng)聲器的聲音[未登錄](méi)
2015-06-15 16:22 |
8錯(cuò)。關(guān)于聲卡的LOOPBACK模式,這里也有介紹http://v.youku.com/v_show/id_XMTI2Mjc1MTg2OA==.html?from=y1.7-1.2  回復(fù)  更多評(píng)論
  
# re: 如何抓取揚(yáng)聲器的聲音
2016-01-05 13:43 | josanna
博主,你好!
首先感謝你的代碼分享,我從中受益不少。但有個(gè)問(wèn)題想向你反饋,不知道你有沒(méi)有解決方法。
在點(diǎn)擊startCapture以后,程序開(kāi)始采集播放聲卡上的聲音。但在這個(gè)過(guò)程中,我打開(kāi)Audition軟件,并有頻繁切換桌面上文件夾。然后,點(diǎn)擊stopCapture停止錄音。并打開(kāi)StartPlay以后,聽(tīng)錄下的音源,發(fā)現(xiàn)聲音存在數(shù)據(jù)不連續(xù),丟失的現(xiàn)象。于是,也具體到代碼和日志里面分析,發(fā)現(xiàn)在錄音過(guò)程中,博主所用的定時(shí)器并非完全按照5ms去探測(cè)AudioEndpointBuffer上的數(shù)據(jù),在桌面上操作或打開(kāi)一些軟件的時(shí)候,計(jì)時(shí)器會(huì)受到影響,異常時(shí)會(huì)出現(xiàn)幾次一兩百毫秒周期,出現(xiàn)了音頻數(shù)據(jù)的丟失。針對(duì)這種情況,博主,你有相關(guān)的解決方法嗎?  回復(fù)  更多評(píng)論
  
# re: 如何抓取揚(yáng)聲器的聲音
2016-01-05 19:36 | Richard Wei
@josanna
不行就開(kāi)線程吧,還不行可以嘗試提高線程的優(yōu)先級(jí)  回復(fù)  更多評(píng)論
  
# re: 如何抓取揚(yáng)聲器的聲音
2016-01-06 08:45 | josanna
@Richard Wei
好的 我去試試,多謝!  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产欧美一区二区精品婷婷| 欧美在线视频日韩| 在线午夜精品自拍| 91久久综合| 亚洲国产精品一区二区www| 国产女同一区二区| 国产欧美日韩亚州综合| 国产精品永久免费在线| 国产精品久久久久久久第一福利 | 亚洲国产高清一区二区三区| 在线免费观看成人网| 亚洲电影免费在线| 91久久久亚洲精品| 一区二区精品| 午夜亚洲视频| 久久综合网hezyo| 亚洲成色精品| 日韩一级视频免费观看在线| 日韩视频一区| 欧美伊人久久久久久午夜久久久久| 欧美在线视频网站| 欧美激情精品久久久久久黑人 | 一区二区黄色| 欧美一区二区精品| 欧美二区在线| 国产精品嫩草99av在线| 伊人激情综合| 亚洲电影中文字幕| 久久国产精品一区二区| 嫩草影视亚洲| 中文高清一区| 久久综合成人精品亚洲另类欧美| 欧美激情1区| 国产日韩欧美二区| 亚洲精品欧美一区二区三区| 亚洲色诱最新| 欧美大片一区二区三区| 午夜精品久久久久久久99热浪潮 | 亚洲黄色影院| 午夜精品久久久久久99热软件| 久久久青草婷婷精品综合日韩 | 欧美gay视频| 亚洲午夜视频在线观看| 久久久久久婷| 国产精品一区二区在线观看不卡| 亚洲欧洲视频| 看片网站欧美日韩| 亚洲欧美日韩中文视频| 欧美另类综合| 最新国产乱人伦偷精品免费网站 | 日韩亚洲视频在线| 久久精品视频播放| 一本一本久久a久久精品牛牛影视| 欧美一区二区三区精品电影| 欧美视频成人| 国产精品99久久久久久人| 欧美国产精品久久| 久久久久久久激情视频| 国产午夜精品在线观看| 欧美亚洲视频一区二区| 亚洲一区国产| 国产精品久久二区| 亚洲永久免费av| 一本色道久久综合狠狠躁篇怎么玩| 免费观看在线综合色| 亚洲国产精品一区制服丝袜| 麻豆成人91精品二区三区| 久久国产精品99精品国产| 国产区在线观看成人精品| 欧美一区二区在线播放| 一区二区国产日产| 国产精品老女人精品视频| 午夜一区在线| 午夜亚洲福利| 在线看欧美日韩| 你懂的视频一区二区| 欧美日韩一区二区精品| 久久中文字幕一区| 激情欧美一区二区三区| 久久精品亚洲一区二区| 久久狠狠一本精品综合网| 黄色成人在线网址| 欧美大秀在线观看| 欧美激情在线狂野欧美精品| 99综合在线| 亚洲一二三四久久| 国产一区二区三区久久悠悠色av| 久久久久久日产精品| 久久久久久久久久久一区| 在线看欧美视频| 亚洲东热激情| 国产精品久久久久999| 亚洲欧美日韩一区在线| 久久国产福利| 99热这里只有精品8| 一级成人国产| 国产一区在线观看视频| 亚洲电影在线观看| 国产精品国产一区二区| 蜜臀va亚洲va欧美va天堂| 欧美精品一区二| 久久国产精品99精品国产| 欧美成年视频| 欧美在线视频a| 欧美v国产在线一区二区三区| 亚洲国产一区二区三区高清| 99在线热播精品免费| 国产亚洲精品资源在线26u| 免费成人激情视频| 国产精品成人一区二区三区夜夜夜 | 国产精品一区二区你懂得 | 亚洲精品日韩一| 国产精品网红福利| 亚洲国产精品久久久久久女王| 国产精品无码专区在线观看| 欧美高清在线播放| 国产精品网站一区| 亚洲人成网站在线播| 狠狠色狠狠色综合日日小说| 中文精品在线| 亚洲精品一区二区三区四区高清| 欧美亚洲一区二区在线| 亚洲午夜羞羞片| 女人天堂亚洲aⅴ在线观看| 久久九九电影| 国产美女诱惑一区二区| 亚洲精品1234| 亚洲精品日韩久久| 久久蜜桃av一区精品变态类天堂| 亚洲女ⅴideoshd黑人| 美女亚洲精品| aaa亚洲精品一二三区| 国产日韩欧美91| 亚洲靠逼com| 亚洲另类春色国产| 欧美国产第一页| 裸体歌舞表演一区二区| 国内揄拍国内精品少妇国语| 午夜在线电影亚洲一区| 亚洲欧美一区二区三区久久| 欧美日韩亚洲综合一区| 亚洲日韩欧美一区二区在线| 亚洲精品一二区| 欧美激情一区二区三区蜜桃视频| 欧美88av| 亚洲国产欧美一区二区三区同亚洲| 久久久久久亚洲综合影院红桃| 久久精品女人的天堂av| 国产亚洲在线观看| 亚洲欧美一区二区三区在线| 欧美在线网站| 黑人巨大精品欧美黑白配亚洲| 久久大香伊蕉在人线观看热2| 久久精品免费电影| 黑人操亚洲美女惩罚| 麻豆成人综合网| 亚洲日本成人在线观看| 亚洲一区二区三区久久| 国产精品网站在线观看| 久久精品九九| 亚洲高清在线观看| 亚洲一区视频| 国产一区观看| 欧美福利视频在线观看| 一本色道久久综合亚洲精品小说 | 理论片一区二区在线| 牛牛国产精品| 亚洲六月丁香色婷婷综合久久| 欧美性猛交99久久久久99按摩| 亚洲嫩草精品久久| 老司机免费视频久久| 99视频有精品| 国产伦精品一区二区三区照片91| 久久精品亚洲国产奇米99| 91久久夜色精品国产九色| 午夜久久久久久| 亚洲精品久久久久久下一站| 欧美日韩国产综合新一区| 午夜在线精品偷拍| 亚洲毛片一区二区| 久久先锋影音av| 亚洲一区制服诱惑| 在线不卡中文字幕播放| 欧美日韩免费网站| 欧美一区激情| 亚洲精品一区二区网址| 久久久国产精品亚洲一区 | 国产精品久久久久久av福利软件 | 亚洲一区二区三区在线观看视频| 欧美在线日韩精品| 亚洲精品国产视频| 国产尤物精品| 欧美性一区二区| 亚洲国产高潮在线观看| 国产日韩精品电影| 欧美激情影院| 久久精品国产在热久久| 一本色道久久综合亚洲精品婷婷| 美女脱光内衣内裤视频久久网站| 亚洲视频在线视频|