国产精品一区在线观看,国产一二三区在线观看,一二三四在线播放免费视频中国,手机日韩理论片在线播放

中國投影網(wǎng)
資訊首頁 |  投影信息 |  新品上市 |  招標信息 |  應用案例 |  技術動態(tài) |  展會信息 |  投影行情 |  企業(yè)訪談
學園首頁 |  名詞解釋 |  選購常識 |  維修保養(yǎng) |  技術動態(tài) |  使用手冊 |  維修專區(qū) |  有問必答 |  歡迎投稿
投影技術分類導航
 >> 投影機 >> 電子白板
 >> 投影儀 >> 投影燈泡
 >> 切換器 >> 視頻展臺
 >> 接口矩陣 >> 等離子屏
 >> 投影幕 >> 投影吊架
 >> 分配器 >> 液晶電視
 >> 延長器 >> 圖形處理器
 >> 反射鏡 >> 中央控制器
 >> 會議系統(tǒng) >> 多媒體講臺
 >> 接口矩陣 >> 背投一體機
 >> 虛擬仿真 >> 背投拼接墻
 >> LCOS技術 >> 邊緣融合
>> 高清技術 >> 家庭影院
   
實用查詢
·投影機使用時間清零方法大全
·投影機常見故障排除法
·各品牌投影機總維修站800電話
·最佳投影距離通用計算公式
·投影屏幕尺寸、投影距離計數(shù)器
 
 
 
  當前位置: >> 首頁 >> 技術學園 >> 視頻會議中的音頻通信之-DirectX實現(xiàn)
視頻會議中的音頻通信之-DirectX實現(xiàn)
 更新時間:2008-5-26 10:23:59 。 編輯:隨云 )   

  視頻會議以其方便、快捷、“面對面”交流的優(yōu)點逐漸得到了人們的認可,許多企事業(yè)單位、教育單位,醫(yī)療單位都希望使用視頻會議來代替?zhèn)鹘y(tǒng)的會議形式。在視頻會議中,與會者之間主要傳輸?shù)氖且纛l數(shù)據(jù)和視頻數(shù)據(jù),其中的音頻數(shù)據(jù)顯得更為重要。因為會議中的大部分有用信息都包含在與會者的言語交上,所以視頻會議系統(tǒng)必須保證音頻通信的流暢性和全雙工,才能使視頻會議更接近于真實的會議環(huán)境。

  DirectX是Microsoft開發(fā)的專門用于開發(fā)游戲和多媒體軟件的應用程序接口(API),包括了對二維和三維圖像、聲音、音樂和針對網(wǎng)絡多人游戲的網(wǎng)絡通信的強大支持。DirectX是一種標準的軟件接口,所有主要的硬件供應商都提供支持DirectX的驅動設備,應用DirectX的軟件可以在不同的硬件環(huán)境下正常運行。另一方面,DirectX能根據(jù)所使用的不同硬件,來選擇適當?shù)姆绞绞褂糜布铀倌芰,便于開發(fā)高質量的多媒體和游戲軟件。在DirectX所提供的眾多組件中,用于音頻處理的是Direct Sound組件。為保證視頻會議系統(tǒng)中語音的流暢性,需要采用Direct Sound中提供的Streaming Buffer(流式緩沖)機制來實現(xiàn)。而為了保證視頻會議系統(tǒng)中的全雙工音頻通信,主要利用的則是Direct Sound中的混音機制來實現(xiàn)。

  利用Streaming Buffer實現(xiàn)流暢的語音交流

  Direct Sound中提供了兩種緩沖機制,分別是Static Buffer(靜態(tài)緩沖)和Streaming Buffer(流式緩沖)。Static Buffer指一次將一段完整的聲音存入緩沖中;Streaming Buffer指的是并不將全部的數(shù)據(jù)一次讀入緩沖,而是在播放聲音時動態(tài)地讀入,占用空間較小。一般來說,如果聲音需要反復播放而且容量有限(如游戲音效),使用Static Buffer更有助于提高程序的效率;相反,如果是容量很大、實時性要求較高的音頻數(shù)據(jù)流,則使用Streaming Buffer為佳。在視頻會議系統(tǒng)中,如使用Static Buffer,則在向緩沖區(qū)寫入新的音頻數(shù)據(jù)時,聲音的回放必然出現(xiàn)短暫停頓,使與會者的完整話語不能夠連續(xù)播放,影響通話的流暢性,而Streaming Buffer可克服語音不連續(xù)的缺點。

  Streaming Buffer提供了兩個指針:Play Cursor(回放游標)和Write Cursor(寫入游標),它們的值只是相對于緩沖區(qū)開頭的偏移量而非絕對的內存地址。其中Play Cursor總是指向下一個被輸出的數(shù)據(jù)字節(jié),而Write Cursor指向的地址則指明從哪個地方開始可以安全地寫入新的音頻數(shù)據(jù)而不影響回放。按回放音頻數(shù)據(jù)的順序來看,Write Cursor總是在Play Cursor之前,并且它們間保持著一定的間距,而這個間距會根據(jù)不同的系統(tǒng)狀況而有所不同,實驗表明這個間距大概是100~200字節(jié)左右。當開始對緩沖區(qū)中的音頻數(shù)據(jù)進行循環(huán)模式回放時,總是在Play Cursor所指的地方開始;胤藕驪lay Cursor和Write Cursor會保持它們的間距等速度前移,并且Play Cursor總是指向下一個被輸出的數(shù)據(jù)字節(jié)。當回放到達緩沖區(qū)的結尾處時,Play Cursor將重新指向緩沖區(qū)的開頭,如此循環(huán)下去。而當程序停止對Streaming Buffer中的音頻數(shù)據(jù)進行回放時,Play Cursor則不再移動,并停留在下一個被輸出的數(shù)據(jù)字節(jié)處,直到重新回放才會繼續(xù)前移。另外,在Play Cursor和Write Cursor之間的區(qū)域被認為是即將要進行回放的數(shù)據(jù),所以不能夠對其做更新。在理解了Streaming Buffer的基本工作方式后,接下來詳細闡述如何用Visual C++作具體實現(xiàn),其中會涉及到一些Visual C++的函數(shù),具體可參考Microsoft MSDN。

  在程序中,設置一個大小為一幀音頻數(shù)據(jù)的大小(一般相當于0.25秒的語音)的2倍的。并且在正中間和結尾處分別設置標志一個觸發(fā)事件。程序開始時,通過調用Play函數(shù)對Streaming Buffer中的數(shù)據(jù)進行循環(huán)回放。當Play Cursor到達正中間和結尾時,事件就會產(chǎn)生,就可以通過程序向緩沖區(qū)寫入新一幀的音頻數(shù)據(jù)。在寫入新一幀音頻數(shù)據(jù)的過程中,首先調用Lock函數(shù)鎖定緩沖區(qū)中的部分,此時的Write Cursor被鎖定不再前移,而Play Cursor將跟隨著聲音的回放繼續(xù)前進;利用回放Play Cursor和Write Cursor間的音頻數(shù)據(jù)的一段時間內,根據(jù)鎖定時獲得的lplpvAudioPtr1(此時lplpvAudioPtr1指向的地方就是鎖定時Write Cursor的所指的地方),lpdwAudioBytes1與Streaming Buffer相關的參數(shù)lplpvAudioPtr2、lpdwAudioBytes2等信息,把數(shù)據(jù)在指定的地方寫入緩沖區(qū),然后調用Unlock函數(shù)解除對Write Cursor的鎖定。這樣,Write Cursor重新調整回PlayCursor保持100~200字節(jié)間距的地方,繼續(xù)對新的音頻數(shù)據(jù)進行回放。上述這個過程在整個程序的運行過程中,不斷地循環(huán)進行,如圖1所示,實現(xiàn)了在對Streaming Buffer中舊一幀音頻數(shù)據(jù)進行回放的同時寫入新一幀的音頻數(shù)據(jù)。

  從理論上講,這已經(jīng)保證了音頻回放的流暢性。但在實現(xiàn)過程中,由于操作的對象是一幀的音頻數(shù)據(jù),其回放的時間僅是0.25秒,所以必須考慮的一個問題是程序的反應速度問題。如果忽略由事件觸發(fā)到真正用Lock函數(shù)鎖定緩沖區(qū)的部分以進行新數(shù)據(jù)寫入之間的時間,則這種實現(xiàn)方法沒有任何問題。除了最開始的兩幀數(shù)據(jù)外,新的一幀數(shù)據(jù)會緊跟在前一幀數(shù)據(jù)之后,彼此之間沒有重疊部分,也沒有空隙存在,能很好地達到音頻回放的流暢效果。但事實上,由事件觸發(fā)到真正用Lock函數(shù)鎖定緩沖區(qū)的部分以進行新數(shù)據(jù)的寫入之間還必須經(jīng)過線程監(jiān)聽到事件,分析事件對應的緩沖區(qū),然后再觸發(fā)相應的回調函數(shù)來進行上面所述的新一幀音頻數(shù)據(jù)的寫入過程。而這一系列分析工作所占用的時間是會隨系統(tǒng)當時的狀況而變化的,是一個隨機的時間長度,所以每次對緩沖區(qū)用Lock函數(shù)鎖定緩沖區(qū)的部分時,Write Cursor所在的位置都會不同,這樣就造成新的一幀數(shù)據(jù)并不一定會嚴格地緊跟在前一幀數(shù)據(jù)之后,它們之間可能會出現(xiàn)重疊部分,也可能會有空隙出現(xiàn),不利于音頻數(shù)據(jù)的連續(xù)播放。如果出現(xiàn)重疊部分,那么回放造成有部分的音頻數(shù)據(jù)丟失;如果有空隙的出現(xiàn),會造成語音的不連續(xù)或混亂。但經(jīng)過調試,仔細分析了由事件觸發(fā)到真正用Lock函數(shù)鎖定緩沖區(qū)的部分以進行新數(shù)據(jù)寫入之間的時間后,發(fā)現(xiàn)它對鎖定時Write Cursor所在位置的偏差產(chǎn)生的波動不大,一般由此產(chǎn)生的重疊部分或空隙部分都在50字節(jié)左右,也就是說平均每幀數(shù)據(jù)中會有50字節(jié)的錯誤。在程序中,指定的一幀音頻數(shù)據(jù)為2000字節(jié)(與0.25秒相對應),所以會有大概2.5%的音頻數(shù)據(jù)會出錯。如果以所采用的音頻格式來計算,8KSPS(采樣率)*8Bit(每個采樣用8位表示)=64KBit/s=8KB/s,那么這2.5%的錯誤在每秒鐘內對應的會是0.025s的音頻數(shù)據(jù),基本上人的聽力是難以分辨的。所以在采用Streaming Buffer依然能很好地達到了音頻的流暢性要求。

  上面只闡述了音頻回放的實現(xiàn)方法,但作為整個視頻會議系統(tǒng)中的音頻功能來說,還必須有音頻采集部分跟它相配合。音頻采集部分的實現(xiàn)方法與回放模塊的基本原理是一樣,都是利用Streaming Buffer來實現(xiàn),故此處不再詳述。

  利用混音機制實現(xiàn)全雙工音頻通信

  Direct Sound中有Primary Buffer(主緩沖區(qū))和Secondary Buffer(輔助緩沖區(qū))兩個緩沖區(qū)。前面所述的Streaming Buffer屬于Secondary Buffer。在初始化DirectSound時,它會自動創(chuàng)建一個,這個主緩沖的作用就是進行混音并把混音結果送到輸出設備。除了Primary Buffer外,程序至少還應該創(chuàng)建一個,輔助緩沖的作用是儲存將要使用的聲音,在不使用的時候可以釋放掉,但Primary Buffer是不可釋放的。實現(xiàn)同時播放多個聲音,前提是硬件允許。其工作過程如下,當程序同時對多個Secondary Buffer中的音頻數(shù)據(jù)進行回放時,Direct Sound會把這些來自于不同Secondary Buffer的聲音在主緩沖區(qū)進行自動混音,然后通過輸出設備輸出,如圖2所示。所以通常情況下,用戶并不需要和主緩沖打交道,DirectSound會自行管理。視頻會議系統(tǒng)的全雙工音頻通信功能,就是利用DirectSound的這一混音機制達到的。

  視頻會議中要實現(xiàn)的全雙工音頻通信功能并不僅限于兩個與會者之間的全雙工通信,而應該擴展為會議的每個者都能根據(jù)需要,同時聽到其他與會者的講話,以達到很好的討論交流效果。為此,在程序中為每個與會者分配一個緩沖數(shù)組,數(shù)組的大小與一幀音頻數(shù)據(jù)大小相同。系統(tǒng)開始運行后,程序一方面把各個與會成員的音頻數(shù)據(jù)幀接收下來,然后根據(jù)用戶標識把它們分別保存在相應的緩沖數(shù)組中,并按照時間順序排列好,而且會為每個用戶創(chuàng)建一個Streaming Buffer用于音頻回放。另一方面,開始對各個用戶對應內容進行循環(huán)播放回放和更新,而更新的音頻數(shù)據(jù)由各個用戶的緩沖數(shù)組順序提供。這樣,不同用戶的音頻信息會自動被Direct Sound進行混音,并把混音的結果放到Primary Buffer中,再從輸出設備輸出,從而達到所需的效果。

  提供的Streaming Buffer機制和混音機制,在視頻會議系統(tǒng)中實現(xiàn)了流暢的全雙工音頻通信,使用效果令人滿意。


更多相關:  投影機

文章來源:流媒體網(wǎng)          

推薦給朋友】【投稿建議】【加入收藏夾】【 】【打印】【關閉】【評論】【頂部
 相關新聞
理清認識誤區(qū) 合理調節(jié)液晶亮度對比度 高清數(shù)字電視視音頻及電源技術
投影機的色彩魔術師 DLP極致色彩技術剖析 投影機的另類應用
使用無線 省去室內投影布線 高清電視圖像處理芯片的應用方案分析
監(jiān)控大屏機芯雙燈冷熱備份的優(yōu)缺點分析 視頻會議應用方案的比較
你家環(huán)境如何 白、灰幕面解析 讓你成為高手 認識與使用影院投影機
 網(wǎng)友評論
 
設為首頁 | 建站服務 |  商務信息 | 投影資訊 | 本站動態(tài) | 付款方式 | 關于中國投影網(wǎng) | 網(wǎng)站地圖 | 友情鏈接

本站網(wǎng)絡實名:中國投影網(wǎng)|投影機|投影機報價 國際域名:http://m.zjgreman.com/
版權所有© 2008 中國投影網(wǎng) .
郵箱:web@ty360.com 電話:+86-755-33225360(十二線)傳真:+86-755-33010311