2015-12-21 30 views
0

我試圖從調制解調器錄製音頻輸入,我已經設法通過TAPI API進行調用。如何在C#中使用MciSendString選擇音頻設備進行錄製

我可以使用MciSendString進行錄製,但不知道如何選擇調制解調器作爲音頻輸入設備(此刻它默認選擇聲卡)。

我也可以使用TAPI命令記錄,但我似乎無法得到它的工作:

http://julmar.com/blog/programming/you-can-be-just-like-the-government-and-record-telephone-conversations-with-tapi-3-1/

任何幫助,將不勝感激。

回答

0

你必須首先檢測所有設備,然後你可以從那裏選擇它。該代碼是VB.Net,但你應該能夠很容易地翻譯它。我認爲,事件處理程序在您的案例中不是必需的。

找到所有TAPI的設備:

Private Sub New() 
fTapi = New TAPI3Lib.TAPI() 
fTapi.Initialize() 

fTapi.EventFilter = TAPI_EVENT.TE_CALLNOTIFICATION Or TAPI_EVENT.TE_CALLINFOCHANGE Or TAPI_EVENT.TE_CALLHUB 

    AddHandler fTapi.Event, AddressOf internalTapiHandler 

    devices = New List(Of Device)() 
    For Each addr As ITAddress In CType(fTapi.Addresses, ITCollection) 
     devices.Add(New Device(fTapi, addr)) 
    Next 
End Sub 

您還可以檢查wheter該設備是音頻設備:

Public ReadOnly Property isAudioDevice() As Boolean 
     Get 
     Return (addr.State = ADDRESS_STATE.AS_INSERVICE) And (CType(addr, ITMediaSupport).MediaTypes And TapiConstants.TAPIMEDIATYPE_AUDIO) = TapiConstants.TAPIMEDIATYPE_AUDIO 
     End Get 
    End Property 

從那裏,你可以去與其他示例代碼。

請注意,由於時間問題,我沒有測試它。無論如何希望這有助於。

問候

+0

我已經試過了,並沒有拿起「USRobotics 56K * USB調制解調器5637)作爲在音頻,正是我試圖做甚至可能嗎?就像我說的,我可以撥出電話,掛斷電話,做基本的位,但似乎無法獲得任何其他工作。我已經閱讀過,對於錄製的ActiveX可以處理它,或者我需要一個PCI語音卡,將電話線接入並將讓我直接訪問通過卡進行錄音的功能? – silverzx

+0

也許您需要固件更新?產品主頁聲明自FW 1.2.23版(http://www.usr-emea.com/support/ s-prod-template.asp?loc = grmy&prod = 5637) - >鏈接到DataSheet:http://support.usr.com/download/datasheets/modem/5637/5637-ds.pdf – ELIZA