⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbid.pas

📁 单路开发文档和源代码例子12-13 设置语音识别内容的列表
💻 PAS
字号:
//=================================================
//  name : usbid.pas
//  copyright : quanova corporation
//  date : 2004.5.13
//
//  date            comment         ver
//  2004.5.13       create          1.00
//=================================================

unit usbid;

interface

uses
  Windows;


const MAX_PLAYBUFSIZE	= 4096;  // 播放缓冲时的最大值
const MaxDataLen = 46;

type
   EDATA= record
   Result: longint;
   Buf: Array[1..MaxDataLen] of Char;
  end;

type
  Event = record
    EventType: longint;		// Type of Event
    Data : EDATA;
  end;

type PEvent = ^Event;


//
//  Event Define
//  事件类型定义.同步与系统发出的消息,请选择其中一种方式处理
//

//
//其它完整事件请查阅开发包->库文件->include->A4drv.h ,根据程序需要自行加入
//
const	TEvent_InterOffHook	  =	0;		// 本地电话机摘机事件

//TV_Event.data.ptrData='1' 为一声震铃结束
//其它为开始震铃
const TEvent_Ring		  =     3;		// 某一外线通道振铃事件

const TEvent_DialEnd		  =	4;		// 拨号结束事件

const TEvent_PlayEnd		  =	5;		// 放音结束事件

const TEvent_Silence		  =	9;		//通话是一定时间的静音.默认为5秒

const TEvent_GetChar		  =	10;		// 收到DTMF码事件

const TEvent_OffHook		  =	11;		// 拨号后,被叫方摘机事件

const TEvent_HangUp		  =	12;		// 挂机事件

const TEvent_Nobody		  =	13;		// 拨号后,没人接听事件

const TEvent_Busy		  =	14;		// 检测到忙音事件

const TEvent_InterHangUp	  =	19;		// 本地电话机挂机

const TEvent_Dial		  =	28;		//检测到拨号音

const TEvent_TelDial		  =	29;		//检测到话机拨号DTMF码

const TEvent_GetFsk		  =	30;		//得到FSK来电

const TEvent_StopCallIn		  =     31;		//对方停止呼叫,(产生一个未接电话)

const TEvent_GetDTMF		  =	32;		//得到DTMF码来电

const TEvent_TelCallOut		  =     33;		//电话机呼出。也就电话机拨号后听到回铃音

const TEvent_PlugOut		  =	36;		//电话伴侣设备被拔掉

const TEvent_PlugIn		  =	37;		//电话伴侣设备插入

const TEvent_RecordError	  =	38;		//录音发生错误(建议重新初始化设备)

const TEvent_PlayError		  =     39;		//播放错误(建议重新初始化设备)

const TEvent_GetDTMFTimeOut	  =     40;		//接收DTMF来电超时(未震铃)。

const TEvent_MicIn		  =	41;		//MIC插入状态

const TEvent_MicOut		  =	42;		//MIC拔出状态

// api
const DLLNAME = 'TmA4Drv.dll';

//
//其它完整函数请查阅开发包->库文件->include->TmA4drv.h ,根据程序需要自行加入
//

//打开关闭Mic
function TV_EnableMic(bEnable:Boolean): Boolean; stdcall; External DLLNAME;

//设备启动关闭
function TV_Initialize(): longint; stdcall; External DLLNAME; //初始化系统中所有的 USBID 电话卡return 0 is ok
function TV_Disable(): longint; stdcall; External DLLNAME; //禁止 USBID 工作
function TV_StartDial(code: String; st: Boolean): longint; stdcall; External DLLNAME;
function TV_StopDial(): longint; stdcall; External DLLNAME;

//获取事件
function TV_GetEvent(TV_Event: Pevent): longint; stdcall; External DLLNAME;

//摘挂机
procedure TV_OffHookCtrl(); stdcall; External DLLNAME;
procedure TV_HangUpCtrl(); stdcall; External DLLNAME;
procedure TV_OpenLinePlay(); stdcall; External DLLNAME;

//录音
function  TV_StartRecordFile(fp: String;seek: longint;num: longint):longint;stdcall;External DLLNAME;
function  TV_StopRecordFile(ldevid:longint;bclearbusy:Boolean): longint; stdcall; External DLLNAME;

//放音
function TV_StartPlayFile(fp:String;lseek:longint;lmaxnum:longint;bopenplay:Boolean;breplay:Boolean;bsetvolume:Boolean;lTime:longint):longint; stdcall; External DLLNAME;
function TV_StopPlayFile(ldevid:longint): longint; stdcall; External DLLNAME;



//////////////////////////////////////////////////////////////////////////
//
// Function:		TV_GetInitState
//
// Description:	    取得初始化状态
//
// Inputs:          无
//
// Return:          
//		TRUE:		初始化设备成功
//	    FALSE:		初始化设备失败
// Notes:			
// 
//////////////////////////////////////////////////////////////////////////
function   TV_GetInitState (): Boolean; stdcall; External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:		TV_EnableRing
//
// Description:	    控制本地话机是否可用
//
// Inputs:          
//		 TRUE:		本地话机可用
//		 FALSE:		本地话机不可用
//
// Return:          无
//
// Notes:			本地话机不可用时,不能进行摘挂机,不能进行通话。
//					此状态将一直保持。
//		
//////////////////////////////////////////////////////////////////////////
procedure TV_EnableRing(bEnable:Boolean); stdcall; External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:		TV_IsRingEnable
//
// Description:	    本地话机是否可用
//
// Inputs:          无
//
// Return:          
//		 TRUE:		本地话机可用
//		 FALSE:		本地话机不可用
//
// Notes:			
//
//////////////////////////////////////////////////////////////////////////
function      TV_IsRingEnable():Boolean ; stdcall; External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:		TV_GetTelState
//
// Description:	    本地话机摘挂机状态
//
// Inputs:          无
//
// Return:
//		 TRUE:		本地话机处于摘机状态
//		 FALSE:		本地话机处于挂机状态
//
// Notes:			区别与系统摘机,两种不同的摘机方式,互相不影响.
//					只要有一个处于摘机状态,电话线就处于摘机状态。
//					可以两个同时摘机进行通话.
//
//////////////////////////////////////////////////////////////////////////
function    TV_GetTelState():Boolean ; stdcall; External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:		TV_GetPcState
//
// Description:	    系统摘挂机状态
//
// Inputs:          无
//
// Return:          
//		 TRUE:		处于摘机状态
//		 FALSE:		处于挂机状态
//
// Notes:			区别与话机摘机,两种不同的摘机方式,互相不影响.
//					只要有一个处于摘机状态,电话线就处于摘机状态。
//					可以两个同时摘机进行通话.
//
//////////////////////////////////////////////////////////////////////////
function TV_GetPcState():Boolean ; stdcall; External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:		TV_CheckDialSignal
//
// Description:	    是否检测到拨号音
//
// Inputs:          无
//
// Return:         
//		 TRUE:		检测到拨号音
//		 FALSE:		没有检测到拨号音
//
// Notes:			在呼叫前先检测拨号音能更准确的呼叫。
//					如果不能检测拨号音,请检测设置的频率是否正确。
//					
//////////////////////////////////////////////////////////////////////////
function TV_CheckDialSignal():Boolean ; stdcall; External DLLNAME;


//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_SetBusyNum
//
// Description:			设置来检测的忙音个数
//
// Inputs:          
//		iBusyNum:		忙音个数(2-4)
//
// Return:              
//
// Notes:	
//			如果不容易检测到忙音,请减少忙音个数。
//		
//////////////////////////////////////////////////////////////////////////
procedure TV_SetBusyNum(ibusynum:longint);stdcall; External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_SetSileLength
//
// Description:			设置来电响铃后静音的长度。标准市话为4000毫秒
//
// Inputs:
//		iSileLength:	静音长度(4000-6000)
//
// Return:
//
// Notes:
//			如果设置的长度小于实际的长度,那会引起在同一个来电时自动被停止,增加N个未接电话。
//			设置的参数要大于等于实际静音的时间,系统默认为4500毫秒。
//
//////////////////////////////////////////////////////////////////////////
procedure TV_SetSileLength(isileLength:longint);stdcall; External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_SetOffHookType
//
// Description:			设置判断对方摘机类型
//
// Inputs:          
//		bType:TRUE		呼叫后要判断对放摘机前必须要先有回铃音
//		bType:FALSE		呼叫后要判断对放摘机前不必先听到回铃音
// Return:              
//
// Notes:	
//			呼叫某些电话时没有回铃音。如:117,IP(17910、19920)。
//			如果你设置需要回铃音,那你呼叫117,IP时不会认为对方摘机。反之。
//			具体需求可以根据实际需求设置。
//////////////////////////////////////////////////////////////////////////
procedure TV_SetOffHookType(btype:Boolean);stdcall; External DLLNAME;


//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_SetCheckDTMFLevel
// 
// Description:			设置检测DTMF的灵敏度
//
// Inputs:          
//		iLevel:0				最灵敏
//		iLevel:1				灵敏
//		iLevel:2				中等
//		iLevel:3				低
//		iLevel:4				最低
// Return:              
//
// Notes:				
// 
//////////////////////////////////////////////////////////////////////////
procedure	TV_SetCheckDTMFLevel(llevel:longint);stdcall;External DLLNAME;


//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_OpenDoPlay
//
// Description:			使电脑放音数据不到盒子喇叭
//
// Inputs:				无
//		
// Return:              无
//
// Notes:	
//					    
//
//////////////////////////////////////////////////////////////////////////
procedure   TV_OpenDoPlay();stdcall;External DLLNAME;


//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_IsDoPlayOpen
//
//	Date:				2004/12/18
//
// Description:			电脑放音数据是否到盒子喇叭是否出声音
//
// Inputs:				无
//		
// Return:              
//		FALSE:			电脑放音的数据不到盒子喇叭
//		TRUE:			电脑放音数据到盒子喇叭出声
//
// Notes:	
//					    
//
//////////////////////////////////////////////////////////////////////////
function   TV_IsDoPlayOpen():Boolean;stdcall;External DLLNAME;



//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_CloseDoPlay
//
// Description:			使电脑放音数据到盒子喇叭
//
// Inputs:				无
//		
// Return:              无
//
// Notes:	
//					    
//
//////////////////////////////////////////////////////////////////////////
procedure   TV_CloseDoPlay();stdcall;External DLLNAME;

//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_SetRecSource
//
// Description:			设置录音数据源
//						
//						RS_MIC		 电话机话筒说话的数据。适合不通话时本地话筒录音
//						RS_SPK		 可用在通话、留言时录音,录线上的声音,使用前电脑摘机,如果不摘机,不能录到数据
//						RS_DOID		 其它时候都用此方式录音,录来自电话线上的声音,用来采集来电号码等。。
//						
// Inputs:				无
//		
// Return:              无
//
// Notes:	
//					 /*电脑摘机后必须打开DOID才能录到线上的声音,如:拨号音等。。*/
//					
//////////////////////////////////////////////////////////////////////////
procedure   TV_SetRecSource(lrectype:longint);stdcall;External DLLNAME;



//////////////////////////////////////////////////////////////////////////
//
// Function:			TV_EnableEchoCanceller
//
// Description:			打开/关闭回音抵消功能
//
// Inputs:          
//		 bEnable:TRUE  打开回音抵消模块
//       bEnable:FALSE 关闭回音抵消模块
// Return:              
//
// Notes:	
//		只需要在设置TV_SetRecSource为RS_MIC并且电话机摘着放音时
//      才有必要打开此功能。如使用电话打IP电话时。建议平时不要打开消耗资源
//		抵消本地电话机产生的回音,避免对方听到自己的说话音。
//		不能抵消对方设备产生的回音,如:使用在网络电话时本地听到自己的说话。(对方用音响产生的回音)
//		
//////////////////////////////////////////////////////////////////////////
procedure     TV_EnableEchoCanceller(bEnable:Boolean);stdcall;External DLLNAME;


implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -