0

我尝试在 C#.NET 中使用 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);
            }
        }
4

1 回答 1

2

您的代码是否在 Windows 服务中运行?在 Windows 7 下,来自 Windows 服务的音频控制存在一个已知问题。目前,除了启动 Windows 应用程序以与 Tapi 集成之外,我找不到解决方法。

于 2012-07-31T22:56:09.037 回答