?? tapi_modem.txt
字號:
有沒有用過語音貓的朋友。
最近弄到一塊語音貓,在語音貓的speaker、MIC插孔上插上我的耳機和麥克風,通過超級終端可以撥出電話號碼,對方可以接聽,我可以聽到對方的講話,但是對方聽不到我的麥克風里的聲音。
我用C# 通過TAPI3寫了一段撥號程序,可以正常撥號,對方也可以接聽,但是卻聽不到我的聲音,我可以聽到他的。和用超級終端一樣,我覺得不應該是程序的問題,應該是我的硬件設置的問題。請教有過這種應用的朋友,你們是怎么做的。
C#代碼如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using TAPI3Lib;
namespace MyTAPI_CS_1
{
public partial class Form1 : Form
{
public delegate void eventHandler(TAPI3Lib.CALL_STATE cs, string str);
private TAPIClass tapiclass;
private ITAddress[] itaddress=new ITAddress[10];
private IEnumAddress ienumaddress;
private ITBasicCallControl itbasiccallctrl;
private int currentline=0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
uint reg=0;
tapiclass = new TAPIClass();
tapiclass.Initialize();
//添加TAPI事件處理
tapiclass.ITTAPIEventNotification_Event_Event += new ITTAPIEventNotification_EventEventHandler(this.Event);
tapiclass.EventFilter = (int)(TAPI_EVENT.TE_CALLNOTIFICATION |
TAPI_EVENT.TE_DIGITEVENT |
TAPI_EVENT.TE_PHONEEVENT |
TAPI_EVENT.TE_CALLSTATE |
TAPI_EVENT.TE_GENERATEEVENT |
TAPI_EVENT.TE_GATHERDIGITS |
TAPI_EVENT.TE_REQUEST);
groupBox1.Enabled = false;
ienumaddress = tapiclass.EnumerateAddresses();
for (int i = 0; i < 10; i++)
{
ienumaddress.Next(1, out itaddress[i], ref reg);
if (itaddress[i] != null)
{
comboBox1.Items.Add(itaddress[i].AddressName);
}
else
break;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int reg;
currentline = comboBox1.SelectedIndex;
reg=tapiclass.RegisterCallNotifications(itaddress[currentline], true, true, TapiConstants.TAPIMEDIATYPE_AUDIO, 2);
MessageBox.Show("注冊線路的事件處理,返回值:"+reg.ToString());
groupBox1.Enabled = true;
}
//撥號
private void button1_Click(object sender, EventArgs e)
{
itbasiccallctrl = itaddress[currentline].CreateCall(textBox1.Text, TapiConstants.LINEADDRESSTYPE_PHONENUMBER, TapiConstants.TAPIMEDIATYPE_AUDIO);
itbasiccallctrl.Connect(false);
}
//掛機
private void button2_Click(object sender, EventArgs e)
{
itbasiccallctrl.Disconnect(DISCONNECT_CODE.DC_NORMAL);
}
public void eventdispose(TAPI3Lib.CALL_STATE cs, string str)
{
listBox1.Items.Add(str);
}
public void Event(TAPI3Lib.TAPI_EVENT te, object eobj)
{
string str = "";
switch (te)
{
case TAPI3Lib.TAPI_EVENT.TE_CALLSTATE:
TAPI3Lib.ITCallStateEvent itcallstateevent = (TAPI3Lib.ITCallStateEvent)eobj;
TAPI3Lib.ITCallInfo itcallinfo = itcallstateevent.Call;
switch (itcallinfo.CallState)
{
case TAPI3Lib.CALL_STATE.CS_OFFERING:
str = "ring";
Invoke(new eventHandler(eventdispose), TAPI3Lib.TAPI_EVENT.TE_CALLSTATE, str);
break;
}
break;
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -