2015-12-21 109 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