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

📄 tw8adll.txt

📁 处理各种电话投诉的危机情况
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   录放音函数适合于语音信息量较小的情况, 例如, 可一次将容量很小的
   文件中的内容全部读入缓冲区, 避免频繁地打开或关闭文件. 多文件连
   续放音可将多个不同的语音文件组合起来按一定的顺序放音.

   使用录放音函数时应注意以下几点:

1. 各个通道可以相互独立地录音或放音, 但某一通道不能同时录音和放音
2. 对于以某一压缩比录音的语音文件, 放音时必须采用与录音时相同的压缩比
3. 对于文件录放音通道的缓冲区大小, 用户一般不必设置, 采用缺省值即可.
   如果录放音正常结束, 自动释放缓冲区; 如果用户在录放音过程中退出, 必
   须调用 TW_StopRecordFile(...) 或 TW_StopPlayFile(...) 结束录放音,
   并释放缓冲区, 否则缓冲区不会被释放
4. 应用程序必须通过不断调用TW_RecordFileRest() 或 TW_PlayFileRest() 
   函数来保证录放音的连续性。
5. 在有录放音的应用程序中,应注意不要调用费时的操作(如较慢的数据库
   查询),否则由于不能及时调用 TW_RecordFileRest()、TW_PlayFileRest(),
   而影响录放音的连续性。

缓冲区录放音(只适用于C语言):
===========================

DWORD     TW_StartRecord (WORD Ch, PBYTE pBuf, DWORD Length);
-------------------------------------------------------------
功能: 某一通道开始缓冲区录音
参数: Ch:     通道号
      pBuf:   录音缓冲区指针
      Length: 录音字节数 
返回: 上次录音时还没有录完的字节数
说明: 各通道可以互不干扰, 独立进行录音, 调用 TW_RecordRest(...) 判断是否录完.
      如果需要录音到某一数据文件, 建议调用 TW_StartRecordFile(...)
      在连续录音时要多次调用 TW_StartRecord(...).


DWORD     TW_StopRecord (WORD Ch);
--------------------------------
功能: 强制停止某一通道的缓冲区录音
参数: Ch:通道号
返回: 停止录音时还没有录完的字节数
说明: 某一通道录音没有结束时可以用此函数强制停止录音


DWORD	TW_RecordRest (WORD Ch);
-------------------------------
功能: 查询某一通道有多少字节没有录完, 若没录完, 继续录音
参数: Ch:通道号
返回: 没有录完的字节数, 如果为 0, 则表示录音结束
说明: 应用程序必须不断调用 TW_RecordRest(...) 来保证录音的连续性, 如果不
      及时调用此函数, 录音就会出现漏音. 返回 0 时, 不必再调用 TW_StopReord (...)
      停止录音


DWORD	TW_StartPlay (WORD Ch, PBYTE pBuf, DWORD Length);
---------------------------------------------------------
功能: 某一通道开始缓冲区放音
参数: Ch:     通道号
      pBuf:   放音缓冲区指针
      Length: 放音字节数 
返回: 上次放音时还没有放完的字节数
说明: 各通道可以互不干扰, 独立进行放音, 但是对某一个通道来说, 录音和放音
      不能同时进行, 调用 TW_PlayRest(...) 判断是否放完.
      如果需要对某一数据文件进行放音, 建议调用 TW_StartPlayFile(...)
      在连续放音时要多次调用 TW_StartPlay(...).


DWORD     TW_StopPlay (WORD Ch);
--------------------------------
功能: 强制停止某一通道的缓冲区放音
参数: Ch:通道号
返回: 停止放音时还没有放完的字节数
说明: 某一通道放音没有结束时可以用此函数强制停止放音


DWORD     TW_PlayRest (WORD Ch);
--------------------------------
功能: 查询某一通道还有多少字节没有放完, 若没放完, 继续放音
参数: Ch: 通道号
返回: 没有放完的字节数, 如果为 0, 则表示放音结束
说明: 应用程序必须不断调用 TW_PlayRest(...) 来保证放音的连续性, 如果不及时
      调用此函数, 放音就会出现断音. 返回 0 时, 不必再调用 TW_StopPlay (...)
      停止放音



文件录放音:
===========

若以下函数返回负数时,其意义如下:
      -1 : 通道号错误
      -2 : 内存分配失败
      -3 : 打开或建立文件失败
      -4 : 文件操作失败

TW_StartRecordFile
------------------
语法:
      C :      LONG TW_StartRecordFile (WORD Ch, LPCSTR FName, LONG Start, DWORD Length)
      VB:      Function TW_StartRecordFile(ByVal Ch As Integer, ByVal FName As String, ByVal Start As Long, ByVal Length As Long) As Long 
      Delphi:  function TW_StartRecordFile(Ch:WORD; FName:PChar; Start, Length:Cardinal):longint
      VF:      TW_StartRecordFile(Ch,FName,Start,Length)
      PB:      FUNCTION Long TW_StartRecordFile (UnsignedInteger Ch, String FName, Long Start, UnsignedLong Length)
功能: 对某一通道进行文件录音
参数: Ch:    通道号
      FName: 数据文件名
      Start: 文件起始位置
      Length:录音字节数
返回: 开始录音前数据文件的长度 (返回负数表示文件录音失败)
说明: 如果数据文件不存在, 则被自动建立, 如果要将录音数据追加到文件尾,
      可将参数 3 设置成 LONG_MAX 或MAXLONG(在C语言中), 或将参数3设置
      成一个足够大的整数.各个通道可以互相独立地进行文件录音.

      使用 TurboWay 系列电话卡所录制的语音数据文件的格式都是标准 A 律
      PCM 码或者 ADPCM 码, 文件扩展名统一规定为 TW, 例如: "HELLO.TW"


TW_RecordFileRest
-----------------
语法:
      C :      LONG TW_RecordFileRest(WORD Ch)
      VB:      Function TW_RecordFileRest(ByVal Ch As Integer) As Long 
      Delphi:  function TW_RecordFileRest(Ch:WORD):longint
      VF:      TW_RecordFileRest(Ch)
          PB:          FUNCTION Long TW_RecordFileRest(UnsignedInteger Ch)
功能: 继续文件录音, 并不断将缓冲区中录完的内容写入文件
参数: Ch: 通道号
返回: 没有录完的字节数 (返回负数表示文件录音失败)
说明: 应用程序必须随时调用 TW_RecordFileRest(...) 来查询文件录音是否结束,
      这样才能保证文件录音的连续性. 建议事先运行 SMARTDRV 提高写盘速度.
      返回 0 时, 不必再调用 TW_StopRecordFile (...) 停止录音

TW_StopRecordFile
-----------------
语法:
      C :      LONG TW_StopRecordFile(WORD Ch)
      VB:      Function TW_StopRecordFile(ByVal Ch As Integer) As Long 
      Delphi:  function TW_StopRecordFile(Ch:WORD):longint
      VF:      TW_StopRecordFile(Ch)
      PB:          FUNCTION Long TW_StopRecordFile(UnsignedInteger Ch)
功能: 强制停止某一通道的文件录音
参数: Ch: 通道号
返回: 没有录完的字节数

TW_StartPlayFile
----------------
语法:
      C :      LONG TW_StartPlayFile (WORD Ch, LPCSTR FName, DWORD Start, DWORD Length)
      VB:      Function TW_StartPlayFile(ByVal Ch As Integer, ByVal FName As String, ByVal Start As Long, ByVal Length As Long) As Long 
      Delphi:  function TW_StartPlayFile(Ch:WORD; FName:PChar; Start, Length:Cardinal):longint
      VF:      TW_StartPlayFile(Ch,FName,Start,Length)
      PB:      FUNCTION Long TW_StartPlayFile(UnsignedInteger Ch, String FName, UnsignedLong Start, UnsignedLong Length)
功能: 对某一通道进行文件放音
参数: Ch:     通道号
      FName:  数据文件名
      Start:  文件起始位置
      Length: 放音字节数
返回: 实际放音的长度 (返回负数表示文件放音失败)
说明: 如果要对全部数据文件进行放音, 可将参数 4 设置成 0.
      各个通道可以互相独立地进行文件放音, 建议事先运行 SMARTDRV 提高读盘速度

TW_PlayFileRest
---------------
语法:
      C :      LONG TW_PlayFileRest(WORD Ch)
      VB:      Function TW_PlayFileRest(ByVal Ch As Integer) As Long 
      Delphi:  function TW_PlayFileRest(Ch:WORD):longint
      VF:      TW_PlayFileRest(Ch)
      PB:      FUNCTION Long TW_PlayFileRest(UnsignedInteger Ch)
功能: 继续文件放音, 并不断将语音文件中未放音的部分读入缓冲区
参数: Ch: 通道号
返回: 没有放完的字节数 (返回负数表示文件放音失败)
说明: 应用程序必须随时调用 TW_PlayFileRest(...) 来查询文件放音是否结束,
      这样才能保证文件放音的连续性. 返回 0 时, 不必再调用 TW_StopPlayFile(...)
      停止放音

TW_StopPlayFile
---------------
语法:
      C :      LONG TW_StopPlayFile(WORD Ch)
      VB:      Function TW_StopPlayFile(ByVal Ch As Integer) As Long 
      Delphi:  function TW_StopPlayFile(Ch:WORD):longint
      VF:      TW_StopPlayFile(Ch)
          PB:          FUNCTION Long TW_StopPlayFile(UnsignedInteger Ch)
功能: 强制停止某一通道的文件放音
参数: Ch: 通道号
返回: 没有放完的字节数




多文件连续放音:
===============
TW_SetVoice(只适用于C语言)
--------------------------
语法:  void   TW_SetVoice (LPSTR *);
功能: 设置多文件放音中字符所对应的语音文件
参数: 语音文件名数组的地址
返回: 无
说明: 

TW_SetVoicei
------------
语法: C :      void TW_SetVoicei (int Index, LPSTR FName)
      VB:      Sub TW_SetVoicei(ByVal Index As Long, ByVal FName As String)  
      Delphi:  procedure TW_SetVoicei(Index:integer;FName:PChar)
      VF:      TW_SetVoicei (Index, FName) 
      PB:      SUBROUTINE TW_SetVoicei(Integer Index, string FName)
功能: 设置多文件放音中某个字符所对应的语音文件
参数: Index: 字符的序号
      FName: 语音文件名
返回: 无 
说明: 在调用TW_SetVoice()设置完后,可调用本函数修该某个字符
      对应的语音文件.

TW_MakeSentence
---------------
语法: 
      C:      void TW_MakeSentence (double Digit, LPSTR RetStr);
      VB:     Sub TW_MakeSentence (ByVal Digit As Double, ByVal RetStr As String)
      Delphi: procedure TW_MakeSentence(Digit:double;RetStr:PChar) 
      VF:     TW_MakeSentence(Digit, @RetStr)
      PB:     SUBROUTINE TW_MakeSentence(double Digit, REF String RetStr)
功能: 转换双精度浮点数为放音语句字符串(用在多文件连续放音中)
参数: Digit:  双精度浮点数
      RetStr: 语句字符串
返回: 无
说明: 函数调用前, 必须给参数RetStr分配足够的空间.
      如果希望念出一个数, 例如 123.4, 可以分别将数字 0 到 9 及小数点的语
      音存入11个语音文件, 将数转换为字符串后直接调用 TW_PlaySentence(...)
      函数放音, 但这时放音内容将是:  "一二三点四",  不符合通常习惯的 "一
      百二十三点四" 的报数方式. 如果希望按照习惯方式报数, 可调用本函数,
      它自动将数转换为字符串, 并处理成符合人们习惯的报数字符串, 此时再调
      用 TW_PlaySentence(...) 函数即可按习惯方式报数

      数的范围是: 大于负一万亿 (-10^12), 小于一万亿 (10^12)

      本函数要求在程序中先调用 TW_SetVoice()或TW_SetVoicei()建立字符与语音文件
      的对应关系, 才能使用TW_PlaySentence()开始放音. 在调用TW_SetVoice()时,语音
      文件名数组应按如下定义:

	char	*VoiceFiles[] = {
		空,
		空,
		对应 '0' 的语音文件名,
		对应 '1' 的语音文件名,
		对应 '2' 的语音文件名,
		对应 '3' 的语音文件名,
		对应 '4' 的语音文件名,
		对应 '5' 的语音文件名,
		对应 '6' 的语音文件名,
		对应 '7' 的语音文件名,
		对应 '8' 的语音文件名,
		对应 '9' 的语音文件名,
		对应 '十'的语音文件名,
		对应 '百'的语音文件名,
		对应 '千'的语音文件名,
		对应 '万'的语音文件名,
		对应 '亿'的语音文件名,
		对应 '点'的语音文件名,
		对应 '负'的语音文件名
		};

      	数组名任意, 数组头两项必须为空 NULL,  从第三项开始存放文件名.
       在调用TW_SetVoicei()时,
       要求字符的序号与语音文件有以下对应关系:
             字符的序号       语音文件名
                    0                  NULL
                    1                  NULL
                    2            数字 0     的语音文件
                    3            数字 1     的语音文件
                    4            数字 2     的语音文件
                    5            数字 3     的语音文件
                    6            数字 4     的语音文件
                    7            数字 5     的语音文件
                    8            数字 6     的语音文件
                    9            数字 7     的语音文件
                   10            数字 8     的语音文件
                   11            数字 9     的语音文件
                   12             十        的语音文件
                   13             百        的语音文件
                   14             千        的语音文件
                   15             万        的语音文件
                   16             亿        的语音文件
                   17           小数点 '.'  的语音文件

⌨️ 快捷键说明

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