專利名稱:恢復系統默認音頻設備及系統處理音頻業務的方法
技術領域:
本發明涉及音頻設備的使用方法,尤其涉及添加外部音頻設備后系統恢復默認音頻設備的方法及系統處理音頻業務語音通訊的方法。
背景技術:
目前的網絡語音通信中,通常為網絡語音通訊軟件添加外部音頻設備作為處理該網絡通信業務的專用音頻設備,實現語音通訊功能的音頻設備包括終端上的系統默認聲卡、麥克風以及耳機或音箱。由于用戶對麥克風和耳機的體驗與傳統手持電話的體驗不同,為了提高用戶體驗,通常另外添加外部音頻設備在網絡語音通訊業務中使用USB Phone即USB接口的電話進行語音通訊。該USB Phone通過USB接口與終端連接。USB Phone設備具有集成錄放功能的音頻設備和鍵盤輸入的人體學輸入設備的HID(Human Interface Device,人機對話接口設備)。網絡語音通訊軟件與USB Phone設備連接后,網絡語音通訊業務通過接收HID傳送的按鍵消息,進行撥號、呼叫以及結束等操作。通過網絡語音通訊業務和USB Phone設備的配合使用,可使網絡電話在用戶體驗上達到與傳統電話同等的效果。
圖1為現有操作系統處理語音通訊的方法流程圖。當系統檢測到外部音頻設備(S11)后,將系統當前的默認音頻設備自動修改為外部音頻設備(S12),然后判斷當前是否存在需要處理音頻文件(S13),如果有,則使用該外部音頻設備進行處理(S14)。由此可見,現有技術所有的音頻文件均通過該外部音頻設備進行處理。當插入USB Phone設備后,MP3播放器和Windows MediaPlayer的聲音均通過USB Phone的喇叭播放,而不是通過原來與終端相連的音箱輸出,從而影響PC上的音頻播放效果。進一步,如果用戶欲恢復原有的音頻播放效果,須手動修改PC上的“控制面板”中的“系統默認音頻設備”,操作步驟復雜,造成用戶體驗不佳。
發明內容
本發明要解決的技術問題在于提供一種恢復系統默認音頻設備及系統處理音頻業務的方法,僅網絡語音通訊中使用該外部音頻設備,而其他音頻業務仍使用原有系統默認音頻設備,從而提高用戶體驗。
為解決上述技術問題,本發明提供一種恢復系統默認音頻設備的方法,包括步驟1)記錄系統默認音頻設備的標識;2)將網絡音頻通訊使用的音頻設備修改為外部音頻設備;3)將當前系統默認音頻設備的標識修改為步驟1)記錄的系統默認音頻設備的標識。
另外,還包括檢測是否存在外部音頻設備,當存在時,執行步驟2)。
其中,步驟2)具體包括201)從系統中獲取所述外部音頻設備標識;202)根據所述外部音頻設備標識進行修改。
另外,步驟2)還能夠按照下述步驟實現211)記錄外部音頻設備的標識;212)根據記錄的外部音頻設備的標識進行修改。
進一步,當所述外部音頻設備拆除后,將網絡語音通訊使用的音頻設備修改為步驟1)記錄的系統默認音頻設備。
如果未檢測到所述外部音頻設備,則啟動系統硬件檢測器,當收到所述系統硬件檢測器的信息時,執行步驟2)。
另外,步驟3)之后還包括步驟關閉所述硬件檢測器,并在所述外部音頻設備拆除后,重新啟動所述硬件檢測器。
另外,如果未檢測到所述外部音頻設備,還能夠設定定時器,定時檢測是否存在外部音頻設備,當存在所述外部音頻設備時,執行步驟2)。
步驟3)之后還包括步驟關閉所述定時器,并在所述外部音頻設備拆除后,重新啟動所述定時器。
其中,步驟3)所述修改系統默認音頻設備的標識的過程具體為31)在系統注冊表中查找當前系統默認音頻設備標識;32)將當前系統默認音頻設備標識修改為步驟1)記錄的系統默認音頻設備標識。
本發明還提供了一種系統處理音頻業務的方法,包括步驟11)記錄系統默認音頻設備的標識;12)將網絡通信使用的音頻設備修改為外部音頻設備;13)將當前系統默認音頻設備的標識修改為步驟11)記錄的系統默認音頻設備的標識;14)判斷當前音頻業務是否為網絡語音通訊業務;15)如果是,則使用所述外部音頻設備進行業務處理;否則,使用系統默認音頻設備進行語音通訊。
其中,步驟12)具體包括從系統中獲取并記錄所述外部音頻設備標識;根據所述外部音頻設備標識進行修改。
另外,當所述外部音頻設備拆除后,將網絡通信的語音通訊使用的音頻設備修改為步驟11)記錄的系統默認音頻設備。
其中,步驟13)所述修改系統默認音頻設備的標識的過程具體為在系統注冊表中查找當前系統默認音頻設備標識;將當前系統默認音頻設備標識修改為步驟11)記錄的系統默認音頻設備標識。
與現有技術相比,本發明的有益效果是由于本發明在使用外部音頻設備的網絡通信業務中預先記錄下系統默認設備標識,在檢測到外部音頻設備后,將該外部音頻設備對應的網絡語音通訊使用的音頻設備修改為所述外部音頻設備,并根據記錄的系統默認設備標識將系統默認音設備恢復為原有的系統默認音頻設備,從而僅在外部音頻設備對應的業務中使用該外部音頻設備,而其他語音通訊仍使用原有系統默認音頻設備,從而提高用戶體驗。
進一步,使外部音頻設備對應的業務獲取該外部音頻設備標識的方法可以通過直接從系統注冊表中獲取的方法實現,也可以通過該業務軟件首先從注冊表中獲取并記錄于軟件內部,處理語音通訊時不再從系統注冊表中獲取,而是從軟件內部獲取的方法實現。
同時,當前未檢測到外部音頻設備時,本發明還提供了循環檢測的方法,同樣通過兩種途徑實現,便于用戶選擇,其中通過操作系統的硬件監測器實現的途徑設計簡單,且不耗費系統額外資源。
圖1是現有技術中系統處理音頻業務的方法流程圖;圖2是第一實施例中恢復系統默認設備的方法的流程圖;圖3是第一實施例中USB Phone檢測器的工作流程圖;圖4是第一實施例中拆除USB Phone后的工作流程圖;圖5是第二實施例中恢復系統默認設備的方法的流程圖。
具體實施例方式
目前的操作系統中,當某項音頻業務需要添加外部音頻設備進行音頻業務處理時,操作系統會將系統原有的默認音頻設備修改為該外部音頻設備,本發明提出一種添加外部音頻設備后系統恢復默認音頻設備的方法,當用戶插入外部音頻設備后,能夠自動將系統默認音頻設備恢復到原有的系統音頻設備,從而使新增外部音頻設備不影響PC上原有音頻設備的輸入輸出效果。
為了能夠實現系統默認音頻設備自動恢復的功能,本發明提供的方案是首先在外部音頻設備欲處理的音頻業務對應的軟件中將系統默認音頻設備標識預先存儲,以便后續進行恢復操作;當插入外部音頻設備后,該軟件檢測到外部音頻設備,則該軟件的音頻業務使用的音頻設備修改為所述外部音頻設備;然后將當前系統默認音頻設備標識修改為所述軟件中記錄的系統默認音頻設備標識。
對于將該業務使用的音頻設備修改為外部音頻設備的方法可以按照下述方式實現由于系統在檢測到新的外部音頻設備后已經將當前注冊表中系統默認音頻設備標識修改為所述外部音頻設備標識;因此,該軟件可以直接從系統注冊表中獲取所述外部音頻設備標識;并根據所述外部音頻設備標識啟動外部音頻設備。
除此之外,本發明還提供了另外一種實現途徑,按照下述步驟實現上述修改過程當檢測到外部音頻設備時,該軟件從注冊表中獲取當前的默認音頻設備標識,即外部音頻設備標識,并記錄在本軟件中;當需要使用外部音頻設備進行語音通訊處理時,不再從系統注冊表中獲取外部音頻設備標識,而是根據內部記錄的外部音頻設備標識啟動該外部音頻設備。值得強調的是,對于這種實現途徑,由于軟件從自身內部獲取音頻設備標識,因此,當所述外部音頻設備拆除后,為了使該軟件的語音通訊仍然能夠正常使用,需要將該軟件的語音通訊使用的音頻設備修改為系統默認音頻設備。
當軟件開啟時未檢測到外部音頻設備時,為了能夠及時檢測到將來插入的外部音頻設備,并且及時將系統默認音頻設備恢復,本發明同樣提供兩種途徑對外部音頻設備進行輪巡。
作為一種優選方案,本發明利用系統的Win32 SDK的RegisterDeviceNotification函數啟動系統硬件檢測器,檢測是否存在外部音頻設備,該硬件檢測器能夠獲取外部音頻設備標識;根據所述外部音頻設備標識即可獲悉外部音頻設備是否插入。這種實現方式設計簡單,同時不必耗費系統資源;
另外一種方案是,在網絡通信軟件內部設置定時器,當軟件開啟時未檢測到外部音頻設備時,將定時器啟動,當到達定時器周期時,查詢系統注冊表中是否出現該外部音頻設備的標識,如果出現,則通知該軟件進行后續處理。
由于目前操作系統將系統默認音頻設備標識存儲在注冊表中,即插入外部音頻設備后,系統自動將注冊表中原有的系統默認音頻設備修改為該外部音頻設備,因此本發明將默認音頻設備進行恢復的過程是在注冊表中完成的。修改時首先在系統注冊表中查找當前系統默認音頻設備標識;找到后,將當前系統默認音頻設備標識修改為預先記錄在該軟件中的系統默認音頻設備標識,從而將默認音頻設備恢復。
由于目前的操作系統不支持多個外部音頻設備同時使用的情況,因此在該外部音頻設備使用過程中將所述硬件檢測器或定時器關閉。
當拆除外部音頻設備后,重新啟動硬件檢測器或定時器。
利用上文所述的系統默認音頻設備的恢復方法就能夠根據不同的音頻業務選擇相應的音頻設備進行處理了。本發明以具有網絡語音通訊功能的IM軟件為例,公開了一種IM軟件添加外部音頻設備后系統處理語音通訊的方法,該方法首先利用上述添加外部音頻設備后系統恢復默認音頻設備的方法將系統默認音頻設備進行恢復,然后判斷當前音頻業務是否為網絡語音通訊;如果是,則使用所述外部音頻設備進行業務處理;否則,使用系統默認音頻設備進行音頻業務處理。
IM軟件通過一個額外的撥號軟件(Dialer)來控制USB Phone設備,并接受從USB Phone上報的消息。撥號軟件即可以是一個可執行程序獨立存在,又可以是一個動態鏈接庫,被IM軟件調用。本發明描述的方案是在撥號軟件中實現。
以下以本發明在IM軟件中的應用為例,列舉幾個具體實施例以詳細闡述本發明的實現過程。
如圖2所示,為了記錄系統默認音頻設備標識和指定IM軟件使用的外部音頻設備名,首先在Dialer軟件中設置兩個變量用于存放系統原有默認音頻設備標識和USB Phone集成的音頻設備名(S1),具體將兩個變量設置為Original_Audio_Device和USB Phone_Audio_Device,當然變量名可以根據需要進行相應的改動。
Dialer啟動時,首先記錄下系統原來默認的音頻設備名(S2),以便后續步驟恢復。接著,判斷用戶是否已經插入USB Phone(S3),如果沒有檢測到USB Phone,則啟動USB Phone硬件檢測器進行循環檢測(S7),硬件檢測器的實現過程將在下文中結合圖3敘述。如果檢測到USB Phone,則從系統注冊表中獲取USB Phone的音頻設備名,并在存儲在預先設置的USBPhon_Audio_Device變量中(S4),并通知IM軟件修改所使用的音頻設備(S5),同時根據變量Original_Audio_Device恢復系統默認的音頻設備(S6)。這樣,用戶在使用IM軟件進行語音通話時,使用的是USB Phone集成的音頻設備;而用戶在運行其它音頻軟件時,如MP3播放器,仍然使用系統原來默認的音頻設備。當使用完畢后將USB Phone拆除(S8),拆除后的處理將結合圖4進行說明。
恢復系統默認音頻設備是通過修改Windows操作系統的注冊表完成。注冊表中記錄當前系統默認音頻設備的具體位置為主鍵HKEY_CURRENT_USER,子鍵Software\Microsoft\Multimedia\Sound Mapper,Playback項所指定的設備為系統默認放音設備,Record項所指定的設備為系統默認錄音設備。確定設置當前系統默認音頻設備的具體位置之后,通過Windows提供的SDK函數進行相應的修改,本實施例利用RegOpenKeyEx完成打開注冊表的功能,RegSetValueEx函數完成修改注冊表的功能,使用RegCloseKey關閉注冊表。
USB Phone硬件檢測器完成的功能分為兩部分硬件檢測器的啟動和檢測到USB Phone后的處理。該硬件檢測器為了檢測到外部硬件設備,首先需要獲取HID設備的GUID標識。GUID是一個128位的結構,是由一個特殊的算法生成的唯一的標識碼,該算法保證了世界上每一個人每一次生成的GUID都不是重復的,從而可以方便地用GUID來標識一些國際化的組件。USB Phone使用的HID設備即是由GUID進行標識的。
根據上述取到的GUID標識,啟動系統硬件通知的操作,本實施例通過Win32 SDK的RegisterDeviceNotification函數完成。該函數保證僅當用戶插入HID設備時,才會產生通知消息。通知消息為WM_DEVICECHANGE。
檢測到USB Phone后的處理,如圖3所示。當用戶插入USB Phone(S31)時,由于已啟動HID設備的硬件通知機制,因此,Dialer將收到WM_DEVICECHANGE消息(S32)。說明Dialer已經檢測到USB Phone,接下來的處理同圖2類似,同步驟S4至S6。最后,檢測到USB Phone后,就關閉USBPhone檢測器,取消系統硬件通知(S33)。因為系統不支持同一個PC上的多個USB Phone應用,所以,當已檢測到一個USB Phone后,對后續插入的USBPhone就不再處理了。取消系統硬件通知的實現通過Win32 SDK提供的UnregisterDeviceNotification函數完成。
圖4示出拔出USB Phone后的操作。當用戶拔出USB Phone(S41)時,Dialer需要讓IM軟件使用的音頻設備恢復到原來系統默認的音頻設備Original_Audio_Device(S42),同時重新啟動USB Phone自動檢測器(S43)。
第二實施例圖5為本實施例的流程圖。在本實施例中,同樣需要預先設定兩個變量存儲系統默認音頻設備標識和外部音頻設備名(S51)。Dialer啟動時,首先記錄下系統原來默認的音頻設備名(S52),以便后續步驟恢復。接著,判斷用戶是否已經插入USB Phone(S53),如果沒有檢測到USB Phone,則啟動預先設定的定時器(S55),當到達定時間隔(S56),則重新檢測當前是否有USB Phone插入。如果檢測到,則直接從系統注冊表中獲取USB Phone的音頻設備標識(S54),并通知IM軟件修改所使用的音頻設備(S55),同時根據變量Original_Audio_Device恢復系統默認的音頻設備(S57)。另外,與第一實施例不同,由于該實施例IM軟件獲取USB Phone的音頻設備標識是直接從系統注冊表中獲取,當USB Phone拆除后,由于系統默認音頻設備標識已經恢復為原有的默認音頻設備標識,由于此時如果IM軟件需要處理語音通訊時,仍是從系統注冊表中獲取音頻設備標識,因此IM取得的為系統原有的默認音頻設備標識,而不必再進行第一實施例需要將使用的音頻設備標識進行還原的步驟。其他過程與第一實施例類似,不再贅述。
利用本發明,插入外部音頻設備后,當處理音頻業務為IM軟件的網絡語音通訊時,則使用USB Phone進行處理,否則,如處理mp3業務時,則使用系統原有的默認音頻設備進行處理。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1.一種恢復系統默認音頻設備的方法,其特征在于,包括步驟1)記錄系統默認音頻設備的標識;2)將網絡語音通訊使用的音頻設備修改為外部音頻設備;3)將當前系統默認音頻設備的標識修改為步驟1)記錄的系統默認音頻設備的標識。
2.根據權利要求1所述的恢復系統默認音頻設備的方法,其特征在于,所述步驟2)之前還包括檢測是否存在外部音頻設備,當存在時,執行步驟2)。
3.根據權利要求2所述的恢復系統默認音頻設備的方法,其特征在于,步驟2)具體包括201)從系統中獲取所述外部音頻設備標識;202)根據所述外部音頻設備標識進行修改。
4.根據權利要求2所述的恢復系統默認音頻設備的方法,其特征在于,步驟2)具體包括211)記錄外部音頻設備的標識;212)根據記錄的外部音頻設備的標識進行修改。
5.根據權利要求4所述的恢復系統默認音頻設備的方法,其特征在于,當所述外部音頻設備拆除后,將網絡語音通訊使用的音頻設備修改為步驟1)記錄的系統默認音頻設備。
6.根據權利要求3或5所述的恢復系統默認音頻設備的方法,其特征在于,還包括如果未檢測到所述外部音頻設備,則啟動系統硬件檢測器,當收到所述系統硬件檢測器的信息時,執行步驟2)。
7.根據權利要求6所述的恢復系統默認音頻設備的方法,其特征在于,步驟3)之后還包括步驟關閉所述硬件檢測器,并在所述外部音頻設備拆除后,重新啟動所述硬件檢測器。
8.根據權利要求3或5所述的恢復系統默認音頻設備的方法,其特征在于,還包括如果未檢測到所述外部音頻設備,則定時檢測是否存在外部音頻設備,當存在所述外部音頻設備時,執行步驟2)。
9.根據權利要求8所述的恢復系統默認音頻設備的方法,其特征在于,步驟3)之后還包括步驟關閉所述定時器,并在所述外部音頻設備拆除后,重新啟動所述定時器。
10.根據權利要求1至5中任意一項所述的恢復系統默認音頻設備的方法,其特征在于,步驟3)所述修改系統默認音頻設備的標識的過程具體為31)在系統注冊表中查找當前系統默認音頻設備標識;32)將當前系統默認音頻設備標識修改為步驟1)記錄的系統默認音頻設備標識。
11.一種系統處理音頻業務的方法,其特征在于,包括步驟11)記錄系統默認音頻設備的標識;12)將網絡通信使用的音頻設備修改為外部音頻設備;13)將當前系統默認音頻設備的標識修改為步驟11)記錄的系統默認音頻設備的標識;14)判斷當前音頻業務是否為網絡語音通訊業務;15)如果是,則使用所述外部音頻設備進行業務處理;否則,使用系統默認音頻設備進行業務處理。
12.根據權利要求11所述的系統處理音頻業務的方法,其特征在于,步驟12)具體包括從系統中獲取并記錄所述外部音頻設備標識;根據所述外部音頻設備標識進行修改。
13.根據權利要求11所述的系統處理音頻業務的方法,其特征在于,當所述外部音頻設備拆除后,將網絡通信的語音通訊使用的音頻設備修改為步驟11)記錄的系統默認音頻設備。
14.根據權利要求11至13中任意一項所述的系統處理音頻業務的方法,其特征在于,步驟13)所述修改系統默認音頻設備的標識的過程具體為在系統注冊表中查找當前系統默認音頻設備標識;將當前系統默認音頻設備標識修改為步驟11)記錄的系統默認音頻設備標識。
全文摘要
本發明提供了一種恢復系統默認音頻設備的方法,預先記錄系統默認音頻設備的標識;當插入外部音頻設備后將網絡通信使用的音頻設備修改為外部音頻設備;將當前系統默認音頻設備的標識修改為預先記錄的系統默認音頻設備的標識,從而僅在外部音頻設備對應的業務中使用該外部音頻設備,其他語音通訊仍使用原有系統默認音頻設備,從而提高用戶體驗。另外,本發明還提供了一種系統處理音頻業務的方法,當對系統默認音頻設備進行恢復后,判斷當前音頻業務是否為網絡語音通信業務;如果是,則使用所述外部音頻設備進行業務處理;否則,使用系統默認音頻設備進行音頻業務處理。
文檔編號H04M11/06GK1877516SQ20051003520
公開日2006年12月13日 申請日期2005年6月6日 優先權日2005年6月6日
發明者王萌, 梁柱, 王麒 申請人:騰訊科技(深圳)有限公司