首页 > 代码库 > 简单代码在ABAP中实现声音的播放
简单代码在ABAP中实现声音的播放
这段代码的功能是在SAP里面实现声音的播放,可以用作程序提醒功能,和SAP里面’噹噹噹’那个声音的意思差不多。将来在项目中遇到客户想要SAP ABAP发出一点声音的时候就可以参考一下这个程序。
REPORT zplay.
DATA: command TYPE string.
*本地命令语句
CONCATENATE ‘vbscript:execute(”document.write ””<bgsound src=http://www.mamicode.com/’
”‘file:///”+Replace(”C:\lg\Bad Romance.mp3“,”\”,”/”)+”‘”
‘loop=’ ”‘1‘” ‘>””:window.setTimeout ””window.close()””,300000“)’ INTO command.
*可以先检查一下播放的音频文件是否存在
CALL METHOD cl_gui_frontend_services=>file_exist
……
*播放声音
1 CALL METHOD cl_gui_frontend_services=>execute 2 EXPORTING 3 * document = 4 application = ‘mshta‘ 5 parameter = command 6 * minimized = ’X’ 7 EXCEPTIONS 8 cntl_error = 1 9 error_no_gui = 210 bad_parameter = 311 file_not_found = 412 path_not_found = 513 file_extension_unknown = 614 error_execute_failed = 715 synchronous_failed = 816 not_supported_by_gui = 917 OTHERS = 10.18 IF sy-subrc <> 0.19 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno20 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.21 ENDIF.
代码就是这么简单,不用任何其他额外的东西。蓝色字体都是可以修改的内容。
几点说明:
1.要播放的音频文件必须要在客户的电脑上存在,一般而言选择WINDOWS系统安装盘下面的默认文件比较靠谱,那些系统声音都在 C:\WINDOWS\Media下面,选择其中一个最方便。当然也可以做成可配置的变量,用户想要什么声音自己去选。
2. loop = ‘1′ 表示播放一次,loop = ‘-1′表示循环播放,loop = ‘n’表示播放N次
3.window.setTimeout ””window.close()””,300000″是用来关闭进程mshta的,300000是指300秒后自动关闭,这里本身是以毫秒为单位。可以根据声音的时间自己调节。
4.这个程序不会出现任何本地的对话框也不会出现播放器界面。
5.如果出现了’SAP GUI安全性‘对话框,可以在SAP GUI Options设置里面,选择security->security settings 将default action设置为 allowed即可