2012-04-09 10 views
0

C# .NET에서 TAPI를 사용하여 자동 응답 machin을 작성하려고합니다.소리가 들리지 않습니다 Windows 7의 TAPI

나는 tapi3_dev 샘플을 사용하여 Windows XP에서 작업하지만 Windows 7에서는 모든 것이 정상 (오류 또는 예외 없음)이지만 사운드 재생만으로는 오디오를 녹음 할 수 없습니다.

도와주세요.


내 코드 ::

case TAPI3Lib.ADDRESS_EVENT.AE_RINGING: this.PlayVoice(CallInfo); 

... 

private void PlayVoice(TAPI3Lib.ITCallInfo iTCallInfo) 
     { 
      try 
      { 
       //the supported file extensions are .avi and .wav. http://msdn.microsoft.com/en-us/library/ms730457.aspx 
       TAPI3Lib.ITBasicCallControl2 iTBasicCallControl2 = (TAPI3Lib.ITBasicCallControl2)iTCallInfo; 
       this.selectedTerminal = iTBasicCallControl2.RequestTerminal(TAPI3Lib.TapiConstants.CLSID_String_FilePlaybackTerminal, TAPI3Lib.TapiConstants.TAPIMEDIATYPE_AUDIO, TAPI3Lib.TERMINAL_DIRECTION.TD_CAPTURE); 
       TAPI3Lib.ITMediaPlayback iTMediaPlayback = (TAPI3Lib.ITMediaPlayback)this.selectedTerminal; 
       object[] playList = new object[1]; 
       playList[0] = @"C:\ModemLog\7533f717-6cc5-41d5-9845-6983cff85e4b.avi"; 
       //playList[0] = @"C:\Users\Abedi\Desktop\Anghezi.wav"; 
       //playList[0] = @"C:\ProgramData\Venta\VentaFax & Voice 6\Service\greet1.wav"; 
       iTMediaPlayback.PlayList = playList; 
       iTBasicCallControl2.SelectTerminalOnCall(this.selectedTerminal); 
       this.iTMediaControl = (TAPI3Lib.ITMediaControl)this.selectedTerminal; 
       if (iTCallInfo.CallState == TAPI3Lib.CALL_STATE.CS_OFFERING) 
        iTBasicCallControl2.Answer(); 
       this.iTMediaControl.Start(); 
       (selectedTerminal as TAPI3Lib.ITBasicAudioTerminal).Volume = 0; 
      } 
      catch (Exception exception) 
      { 
       this.Log(exception.Message, "Exception in PlayVoice"); 
       this.WriteLine(exception.Message); 
       this.buttonDisconnect_Click(null, EventArgs.Empty); 
      } 
     } 
+0

재생 단자가 있는지 확인하십시오. – bresleveloper

답변

2

코드를 Windows 서비스로 실행하고 있습니까? Windows 7에서 Windows 서비스의 오디오 제어에 대한 알려진 문제점이 있습니다. 현재 tapi와 상호 작용하도록 Windows 응용 프로그램을 시작하는 것 이외의 다른 해결 방법을 찾을 수 없습니다.