【发布时间】:2016-03-27 07:54:05
【问题描述】:
我正在尝试记录来自调制解调器的音频输入,我已设法通过 TAPI api 拨打电话。
我可以使用 MciSendString 录制,但不知道如何选择调制解调器作为音频输入设备(目前默认选择声卡)。
我也可以使用 TAPI 命令进行录制,但我似乎无法让它工作:
任何帮助将不胜感激。
【问题讨论】:
我正在尝试记录来自调制解调器的音频输入,我已设法通过 TAPI api 拨打电话。
我可以使用 MciSendString 录制,但不知道如何选择调制解调器作为音频输入设备(目前默认选择声卡)。
我也可以使用 TAPI 命令进行录制,但我似乎无法让它工作:
任何帮助将不胜感激。
【问题讨论】:
您必须先检测所有设备,然后才能从那里选择它。代码是 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
您还可以检查设备是否为音频设备:
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
从那里您可以继续使用其他示例代码。
请注意,由于时间问题,我没有对其进行测试。无论如何,希望这会有所帮助。
问候
【讨论】: