c# 语音卡控制--语音卡实现电话录音
2011-11-24 09:52
274 查看
虽然查了几个例子都是基于东进语音卡的,但是我想原理应该都是一样的吧!
------------------------------------------------------------------------------------------------------
实例430 语音卡实现电话录音
实例说明
如今的许多电话都具有电话录音的功能。本例实现了该功能,当有电话打入时,即刻将双方的对话信息进行录音。实例运行结果如图13.14所示。
技术要点
其他相关函数介绍请参见实例“语音卡电话呼叫系统”,本实例主要介绍StartRecordFile函数和StopRecordFile函数。
(1)StartRecordFile函数用于开始文件录音。停止该方式的录音一定要用StopRecordFile函数。检查录音是否结束,用CheckRecordEnd函数。StartRecordFile函数语法如下:
[DllImport("Tc08a32.dll", CharSet = CharSet.Auto)]
public static extern bool StartRecordFile(short wChnlNo, byte[] FileName, long dwRecordLen);
参数说明如下。
l wChnINo:标识录音的通道号。
l FileName:标识录音的文件名。
l dwRecordLen:标识文件大小。
(2)StopRecordFile函数用于停止录音。该函数语法如下:
[DllImport("Tc08a32.dll", CharSet = CharSet.Auto)]
public static extern void StopRecordFile(short wChnlNo);
参数说明如下。
l wChnINo:标识要停止的录音通道。
(3)CheckRecordEnd函数检查指定通道录音是否结束(缓冲区已满)。
[DllImport("Tc08a32.dll", CharSet = CharSet.Auto)]
public static extern int CheckRecordEnd(int ChannelNo);
参数说明如下。
l wChnINo:标识录音的通道号。
l 返回值:0表示未结束;1代表结束。
实现过程
(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 = "";
}
}
}
}
------------------------------------------------------------------------------------------------------
实例430 语音卡实现电话录音
实例说明
如今的许多电话都具有电话录音的功能。本例实现了该功能,当有电话打入时,即刻将双方的对话信息进行录音。实例运行结果如图13.14所示。
技术要点
其他相关函数介绍请参见实例“语音卡电话呼叫系统”,本实例主要介绍StartRecordFile函数和StopRecordFile函数。
(1)StartRecordFile函数用于开始文件录音。停止该方式的录音一定要用StopRecordFile函数。检查录音是否结束,用CheckRecordEnd函数。StartRecordFile函数语法如下:
[DllImport("Tc08a32.dll", CharSet = CharSet.Auto)]
public static extern bool StartRecordFile(short wChnlNo, byte[] FileName, long dwRecordLen);
参数说明如下。
l wChnINo:标识录音的通道号。
l FileName:标识录音的文件名。
l dwRecordLen:标识文件大小。
(2)StopRecordFile函数用于停止录音。该函数语法如下:
[DllImport("Tc08a32.dll", CharSet = CharSet.Auto)]
public static extern void StopRecordFile(short wChnlNo);
参数说明如下。
l wChnINo:标识要停止的录音通道。
(3)CheckRecordEnd函数检查指定通道录音是否结束(缓冲区已满)。
[DllImport("Tc08a32.dll", CharSet = CharSet.Auto)]
public static extern int CheckRecordEnd(int ChannelNo);
参数说明如下。
l wChnINo:标识录音的通道号。
l 返回值:0表示未结束;1代表结束。
实现过程
(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 = "";
}
}
}
}
相关文章推荐
- c# 语音卡控制--语音卡实现电话录音
- c# 语音卡控制--语音卡实现电话录音
- C#控制语音卡实现呼叫、录音以及来电弹屏
- C#控制语音卡实现呼叫、录音以及来电弹屏
- [转]c# 语音卡控制--语音卡电话呼叫系统
- c# 语音卡控制--语音卡电话呼叫系统
- 利用语音Modem实现电话点播和留言功能
- C# 实现对硬件的控制
- C#实现IVR(基于东进的语音卡)-2
- c#调用TeamViewer或AnyDesk实现远程控制
- c#实现控制用户上其他网站!只能浏览固定的网站.谁能教我怎么做啊???
- EasyCamera中海康摄像头语音对讲和云台控制转发实现
- 通过API实现C#对硬件的控制(二)
- DirectX编程:C#中利用Socket实现网络语音通信[初级版本]
- 在C#中使用COM+实现事务控制
- 在C#中使用COM+实现事务控制
- 写程序+控制cpu占用率-4+绘制CPU使用率的正弦曲线2+C#+实现
- 在C#中使用COM+实现事务控制
- 通过API实现C#对硬件的控制(二)
- C#实现语音视频录制-附demo源码