(1)新建一个项目,命名为Ex13_13,默认窗体为Form1。 (2)在Form1窗体中,主要添加一个DataGridView控件,显示语音卡各通道和通道状态,并在来电时显示来电号码;添加一个Timer控件用于实时检测来电信息,如果来电,程序将自动摘机并且实现录音;添加其他控件及用途如图13.14所示。 (3)主要程序代码。 private void timer1_Tick(object sender, EventArgs e) { //维持文件录音持续执行 DJ160API.PUSH_PLAY(); for (short i = 0; i < 8; i++) { DJ160API.StartSigCheck(i); if (open_close == false) DJ160API.ResetCallerIDBuffer(i); if (DJ160API.RingDetect(i)) { open_close = true; //摘机 DJ160API.OffHook(i); DJ160API.StartSigCheck(i); //是否挂机 if (DJ160API.ReadCheckResult(i, 2) != 33) { bool bl = DJ160API.StartRecordFile(i, Encoding.UTF8.GetBytes(@"D:\ly.001"), 600 * 1024); //这一行中的录音长度可能有点问题!如果不进行SetPackRate ( WORD wPackRate );设置压缩率,则按(无压缩) 每秒64K bits 即 8K bytes.这样的录音长度设为8000*xxx.你用的600*1024好像不妥. dataGridView1[2, i].Value = "已接来电,开始录音"; } else { DJ160API.StopRecordFile(i); open_close = false; DJ160API.Sig_ResetCheck(i); dataGridView1[2, i].Value = ""; } if (DJ160API.CheckRecordEnd(i)==1) { DJ160API.StopRecordFile(i); open_close = false; dataGridView1[2, i].Value = ""; } } } } |
|