C# 및 TAPI 3 라이브러리를 사용하여 유선 전화 및 전이중 음성 모뎀 용 소프트웨어를 개발 중입니다. 전화 응답이 정상적으로 작동하지만 전화 끊기가 예외를 발생시킵니다. 해결책을 찾기 위해 많은 검색을했는데 할 수 없었습니다. 다음은 오류입니다.유선 전화의 전화 끊기시 예외
호출하는 메소드에서 예외가 발생했습니다. ici.ReleaseUserUserInfo(); 은 { "고려하지 않습니다이 구현 조언 (HRESULT에서 예외 : 0x80040003 (OLE_E_ADVISENOTSUPPORTED))"} System.Exception {함께 System.Runtime.InteropServices.COMException} "
내 목표는 녹음 된 통화를 저장하는 것입니다 . 한 가지 흥미로운 점은, 전화 끊기 전에, 내가 응용 프로그램을 닫을 경우, 성공적으로 녹음 된 전화를 절약 할 수 있다는 것입니다
내 코드 :.
private void BtnAnswer_Click(object sender, EventArgs e)
{
IEnumCall ec = ia[line].EnumerateCalls();
uint arg = 0;
ITCallInfo ici;
ITTerminal recordTerminal;//NY test record
try
{
ec.Next(1, out ici, ref arg);
ITBasicCallControl2 bc = (TAPI3Lib.ITBasicCallControl2)ici;
recordTerminal = bc.RequestTerminal(TapiConstants.CLSID_String_FileRecordingTerminal,
TapiConstants.TAPIMEDIATYPE_MULTITRACK,
TAPI3Lib.TERMINAL_DIRECTION.TD_RENDER);
ITMediaControl mediacontrol = (ITMediaControl)recordTerminal;
ITMediaRecord mediarecord = (ITMediaRecord)recordTerminal;
mediarecord.FileName = "a.wav";
bc.SelectTerminalOnCall(recordTerminal);
bc.Answer();
mediacontrol.Start();
}
catch (Exception exp)
{
MessageBox.Show("There may not be any calls to answer! \n\n" + exp.ToString(), "TAPI3");
}
}
private void BtnHang_Click(object sender, EventArgs e)
{
IEnumCall ec = ia[line].EnumerateCalls();
uint arg = 0;
ITCallInfo ici;
try
{
ec.Next(1, out ici, ref arg);
ITBasicCallControl bc = (ITBasicCallControl)ici;
bc.Disconnect(DISCONNECT_CODE.DC_NORMAL);
ici.ReleaseUserUserInfo();
}
catch (Exception exp)
{
MessageBox.Show("No call to disconnect!", "TAPI3");
}
}
예외가 발생한 행은 무엇입니까? 하단 라인 번호 –
. 07, ici.ReleaseUserUserInfo(); –
ici 객체에서 ITCallInfo :: GetCallInfoBuffer() 메서드를 어디서든 호출하고 있습니까? –