流程说明:**之录音子流程
流程名称:Funp_RecordVoice()
版 本:Release V1.0
编写日期:2004-05-29
修改日期:2004-05-29
流程作者:Oseee
***************************************************/
/**************************************************
子流程输入输出参数说明:
输入:
_Field1: 接受方手机号码
输出:
_Field1: 录音生成的语音文件(包含路径)
0:表示成功
1:表示失败
***************************************************/
/***************************************************
寄存器使用说明:
SR10: 主叫用户手机号码
SR11: 语音文件路径
SR12: 带路径的语音文件名
SR13: 接受方手机号码
SR14: 录音文件暂时存储的变量
SR20: 语音文件路径暂时过渡变量
SR50: 暂存时间字符串
SR60: 录音文件路径
***************************************************/
#include Funp_DateTimeToString //当前日期转化为连续字符串子流程
#define SUCCESS 0 //子流程成功完成
#define EXCEPTION 1 //子流程出现异常
TRACE ON
FUNCTION Funp_RecordVoice
{
BEGIN:
EvtStart[0]
SAssign(SR13,_Field1)
SAssign(SR10,_CallingNumber)
ReadStrFromINI(_INIFileName,"PATH.LeaveWord",SR60)
ReadStrFromINI(_INIFileName,"PATH.SYSTEM",SR11)
-> stPlayTipVoice
stPlayTipVoice:
SAssign(SR12,SR11)
SAdd(SR12,"15.vox")
PlayFile(SR12,"?")
EvtReturn[0] -> stGenerateFileName
EvtReturn[3] -> stGenerateFileName
EvtReturn[-1] -> stRecordFailure
stGenerateFileName: //生成录音文件名
Funp_DateTimeToString()
EvtReturn[-1]
SAssign(SR50,_Field1)
-> stStartRecord
stStartRecord: //开始录音
SAssign(SR20,SR60)
SAdd(SR20,SR50)
SAdd(SR20,"_")
SAdd(SR20,SR10)
SAdd(SR20,"TO")
SAdd(SR20,SR13)
SAdd(SR20,".vox")
SAssign(SR14,SR20)
RecordVoice(SR14,-1,"?")
EvtReturn[0] -> stPlaySureRecordVoice
EvtReturn[6] -> stRecordFailure
EvtReturn[7] -> stRecordFailure
EvtReturn[-1] -> stRecordFailure
stPlaySureRecordVoice:
ClearMixTone()
SAssign(SR12,SR11)
SAdd(SR12,"16_1.vox")
AddFileMixTone(SR12)
AddFileMixTone(SR14)
PlayMixTone("?",1)
EvtReturn[0] -> stPlayOkOrAgain
EvtReturn[3] -> stPlayOkOrAgain
EvtReturn[-1] -> stRecordFailure
stPlayOkOrAgain: //播放确定录音或重录
SAssign(SR12,SR11)
SAdd(SR12,"16_2.vox")
PlayFile(SR12,"?")
EvtReturn[0] -> stGetSureDigit
EvtReturn[3] -> stGetSureDigit
EvtReturn[-1] -> stRecordFailure
stGetSureDigit: //获取按键
GetDigits(1,10,"")
EvtReturn[0] -> stCheckSureDigitButton
EvtReturn[4] -> stPlayOkOrAgain
EvtReturn[-1] -> stRecordFailure
stCheckSureDigitButton:
CheckPushedButton()
EvtReturn[1]
SAssign(_Field1,SR14)
IAssign(_result,SUCCESS)
-> END
EvtReturn[2] -> stDeleteRecordVox
EvtReturn[-1] -> stPlayOkOrAgain
stDeleteRecordVox: //检测文件是否存在
AccessFile(SR14)
EvtReturn[0] -> stDeleteRecordVoxReal
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END
stDeleteRecordVoxReal: //删除文件
RemoveFile(SR14)
EvtReturn[0] -> stPlayTipVoice
EvtReturn[-1] -> stRecordFailure
stRecordFailure: //用户录音出现错误
SAssign(SR12,SR11)
SAdd(SR12,"Syb.vox")
PlayFile(SR12,"?")
EvtReturn[0] -> stRecordFileIsExist
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END
stRecordFileIsExist: //录音失败后,录音文件是否存在
AccessFile(SR14)
EvtReturn[0] -> stRemoveRecordFile
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END
stRemoveRecordFile: //删除录音文件
RemoveFile(SR14)
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END
流程名称:Funp_RecordVoice()
版 本:Release V1.0
编写日期:2004-05-29
修改日期:2004-05-29
流程作者:Oseee
***************************************************/
/**************************************************
子流程输入输出参数说明:
输入:
_Field1: 接受方手机号码
输出:
_Field1: 录音生成的语音文件(包含路径)
0:表示成功
1:表示失败
***************************************************/
/***************************************************
寄存器使用说明:
SR10: 主叫用户手机号码
SR11: 语音文件路径
SR12: 带路径的语音文件名
SR13: 接受方手机号码
SR14: 录音文件暂时存储的变量
SR20: 语音文件路径暂时过渡变量
SR50: 暂存时间字符串
SR60: 录音文件路径
***************************************************/
#include Funp_DateTimeToString //当前日期转化为连续字符串子流程
#define SUCCESS 0 //子流程成功完成
#define EXCEPTION 1 //子流程出现异常
TRACE ON
FUNCTION Funp_RecordVoice
{
BEGIN:
EvtStart[0]
SAssign(SR13,_Field1)
SAssign(SR10,_CallingNumber)
ReadStrFromINI(_INIFileName,"PATH.LeaveWord",SR60)
ReadStrFromINI(_INIFileName,"PATH.SYSTEM",SR11)
-> stPlayTipVoice
stPlayTipVoice:
SAssign(SR12,SR11)
SAdd(SR12,"15.vox")
PlayFile(SR12,"?")
EvtReturn[0] -> stGenerateFileName
EvtReturn[3] -> stGenerateFileName
EvtReturn[-1] -> stRecordFailure
stGenerateFileName: //生成录音文件名
Funp_DateTimeToString()
EvtReturn[-1]
SAssign(SR50,_Field1)
-> stStartRecord
stStartRecord: //开始录音
SAssign(SR20,SR60)
SAdd(SR20,SR50)
SAdd(SR20,"_")
SAdd(SR20,SR10)
SAdd(SR20,"TO")
SAdd(SR20,SR13)
SAdd(SR20,".vox")
SAssign(SR14,SR20)
RecordVoice(SR14,-1,"?")
EvtReturn[0] -> stPlaySureRecordVoice
EvtReturn[6] -> stRecordFailure
EvtReturn[7] -> stRecordFailure
EvtReturn[-1] -> stRecordFailure
stPlaySureRecordVoice:
ClearMixTone()
SAssign(SR12,SR11)
SAdd(SR12,"16_1.vox")
AddFileMixTone(SR12)
AddFileMixTone(SR14)
PlayMixTone("?",1)
EvtReturn[0] -> stPlayOkOrAgain
EvtReturn[3] -> stPlayOkOrAgain
EvtReturn[-1] -> stRecordFailure
stPlayOkOrAgain: //播放确定录音或重录
SAssign(SR12,SR11)
SAdd(SR12,"16_2.vox")
PlayFile(SR12,"?")
EvtReturn[0] -> stGetSureDigit
EvtReturn[3] -> stGetSureDigit
EvtReturn[-1] -> stRecordFailure
stGetSureDigit: //获取按键
GetDigits(1,10,"")
EvtReturn[0] -> stCheckSureDigitButton
EvtReturn[4] -> stPlayOkOrAgain
EvtReturn[-1] -> stRecordFailure
stCheckSureDigitButton:
CheckPushedButton()
EvtReturn[1]
SAssign(_Field1,SR14)
IAssign(_result,SUCCESS)
-> END
EvtReturn[2] -> stDeleteRecordVox
EvtReturn[-1] -> stPlayOkOrAgain
stDeleteRecordVox: //检测文件是否存在
AccessFile(SR14)
EvtReturn[0] -> stDeleteRecordVoxReal
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END
stDeleteRecordVoxReal: //删除文件
RemoveFile(SR14)
EvtReturn[0] -> stPlayTipVoice
EvtReturn[-1] -> stRecordFailure
stRecordFailure: //用户录音出现错误
SAssign(SR12,SR11)
SAdd(SR12,"Syb.vox")
PlayFile(SR12,"?")
EvtReturn[0] -> stRecordFileIsExist
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END
stRecordFileIsExist: //录音失败后,录音文件是否存在
AccessFile(SR14)
EvtReturn[0] -> stRemoveRecordFile
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END
stRemoveRecordFile: //删除录音文件
RemoveFile(SR14)
EvtReturn[-1]
SAssign(_Field1,"")
IAssign(_result,EXCEPTION)
-> END