首页 > 代码库 > 简单代码在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即可