简单代码在ABAP中实现声音的播放

      这段代码的功能是在SAP里面实现声音的播放,可以用作程序提醒功能,和SAP里面’噹噹噹’那个声音的意思差不多。将来在项目中遇到客户想要SAP ABAP发出一点声音的时候就可以参考一下这个程序。

REPORT zplay.
DATA: command TYPE string.

*本地命令语句
CONCATENATE ‘vbscript:execute(”document.write ””<bgsound src=’
‘file:///”+Replace(”C:lgBad 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           = 2
10     bad_parameter          = 3
11     file_not_found         = 4
12     path_not_found         = 5
13     file_extension_unknown = 6
14     error_execute_failed   = 7
15     synchronous_failed     = 8
16     not_supported_by_gui   = 9
17     OTHERS                 = 10.
18 IF sy-subrc <> 0.
19   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
20   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
21 ENDIF.

代码就是这么简单,不用任何其他额外的东西。蓝色字体都是可以修改的内容。

几点说明:

1.要播放的音频文件必须要在客户的电脑上存在,一般而言选择WINDOWS系统安装盘下面的默认文件比较靠谱,那些系统声音都在 C:WINDOWSMedia下面,选择其中一个最方便。当然也可以做成可配置的变量,用户想要什么声音自己去选。

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即可

原文地址:https://www.cnblogs.com/ruingy/p/3925391.html