/*************************************************************
北京高阳圣思园信息技术有限公司IVR业务:
流程说明:公司介绍子流程
发布版本:Version 1.0.0
编写日期:2005-05-27
修改日期:2006-03-02
流程作者:Hisunsray
联系方式:Tel - (010)84505155-531
E_Mail :zhaojt@hisunsray.com
版权归属:北京高阳圣思园信息技术有限公司
*************************************************************/
/*************************************************************
主流程修改记录:
2005-05-27:编制公司介绍子流程
2006-03-02:修改流程为点歌台,增加上一条,下一条,重听操作
*************************************************************/
/*************************************************************
寄存器使用说明:
SR10: 播放内容
SR0: 系统提示音路径
SR30: 播放的提示音
SR50: 内容语音路径
SR51: 播放的内容语音
*************************************************************/
/************************************************************
子流程输入输出参数说明:
输入:
无
输出:
_Field1:点送的内容
返回值:
0:表示成功
1:表示失败
*************************************************************/
/*****************宏定义*************************************/
#define SUCCESS 0
#define EXCEPTION 1
/************************************************************/
TRACE ON
FUNCTION Func_key1
{
/**
开始
*/
BEGIN:
EvtStart[0]
ReadStrFromINI(_INIFileName,"PATH.key1",SR0) /*z: 2361259012341*/
ReadStrFromINI(_INIFileName,"PATH.key1Content",SR50) /*z: 2361259012341content*/
->stTipVoice //跳转到函数
/**
播放欢迎语音
*/
stTipVoice:
SAssign(SR30,SR0) //把路径赋值给SR30
SAdd(SR30,"Tip1.vox") //收听过程中按1键听下一条,2键听上一条,3键重听,按*键返回主菜单
PlayFile(SR30,"?") //"?"代表按任意键打断,""表示不打断
//未打断
EvtReturn[0]
SAssign(SR1,"song") //歌曲名称的共有名song
SAssign(SR2,"1") //歌曲名称的编号
-> stPlayContent
//打断
EvtReturn[3]
SAssign(SR1,"song")
SAssign(SR2,"1")
-> stPlayContent
//异常
EvtReturn[-1] -> END //异常
/**
根据变量播放内容语音
*/
stPlayContent:
SAssign(SR51,SR50) //*z: 2361259012341content*/
SAdd(SR51,SR1) //z: 2361259012341contentsong
SAdd(SR51,SR2) //z: 2361259012341contentsong1 SR2为计数变量,下一首则加,上一首则减
SAdd(SR51,".vox") //播放第一首song1.vox
PlayFile(SR51,"123#*") //z: 2361259012341contentsong1.vox
EvtReturn[0] -> stGetDigits //等待用户按键
EvtReturn[3] -> stGetDigits
EvtReturn[-1] -> END
stGetDigits:
GetDigits(1,3,"") //获取用户按键,3秒超时
EvtReturn[0]
//SAssign(SR10,_EventData)
-> stCheckButton //如果正常获取,则检查按键
EvtReturn[4] -> stPlayContent //超时重放
EvtReturn[-1] -> END //返回
stCheckButton:
CheckPushedButton() //检查用户按键
EvtReturn[1] -> stNext //按键1
EvtReturn[2] -> stBefore //按键2
EvtReturn[3] -> stPlayContent //按键3
EvtReturn[10] -> END //按键#
EvtReturn[11] -> END //按键*
EvtReturn[-1] -> stPlayContent //其他按键
stNext: //听下一条
StoI(IR2,SR2) //类型转换
IAdd(IR2,1) //序号加1
IEqual(IR2,10) //序号与10比较
EvtReturn[2] //参数1大于参数2
SAssign(SR2,"1")
->stPlayContent
EvtReturn[-1]
ItoS(SR2,IR2)
->stPlayContent
stBefore: //听上一条
StoI(IR2,SR2)
ISub(IR2,1) //序号减1
IEqual(IR2,1) //序号与1比较
EvtReturn[1] //参数1小于参数2
SAssign(SR2,"10")
->stPlayContent
EvtReturn[-1] //其他
ItoS(SR2,IR2)
->stPlayContent
/********************************************随机播放内容音*****************************************************/
stRandPlay:
IntRand(IR2,11) //IR2中的随机数为0至10中的任意一个
IEqual(IR2,0)
EvtReturn[0]
IAdd(IR2,1)
ItoS(SR2,IR2)
->stPlayContent
EvtReturn[-1]
ItoS(SR2,IR2)
->stPlayContent
}