SAP播放本地视频及音频(仅限于window MediaPlayer可播放文件)详解编程语言

这个是从SCN上看到的,自己稍加修改,编制,做的还可以,可以播放视频,音频,唯一的不足就是不能控制播放视频的显示窗口大小,希望有人能帮忙解决,感激!

视频播放类:(新建类Z_CL_MEDIA,点击基于原代码,复制下面代码进去,激活)

class Z_CL_MEDIA definition 
public 
inheriting from CL_GUI_CONTROL 
final 
create public . 
public section. 
type-pools CNTL . 
methods CONSTRUCTOR 
importing 
!PARENT type ref to CL_GUI_CONTAINER . 
methods SETDATASOURCE 
importing 
!FILENAME type STRING . 
methods DISPATCH 
redefinition . 
methods SET_HEIGHT 
redefinition . 
methods SET_WIDTH 
redefinition . 
methods SET_POSITION 
redefinition . 
protected section. 
ENDCLASS. 
CLASS Z_CL_MEDIA IMPLEMENTATION. 
* <SIGNATURE>---------------------------------------------------------------------------------------+ 
* | Instance Public Method Z_CL_MEDIA->CONSTRUCTOR 
* +-------------------------------------------------------------------------------------------------+ 
* | [--->] PARENT                         TYPE REF TO CL_GUI_CONTAINER 
* +--------------------------------------------------------------------------------------</SIGNATURE> 
METHOD constructor. 
CALL METHOD super->constructor 
EXPORTING 
clsid    = 'MediaPlayer.MediaPlayer' 
parent   = parent 
lifetime = 2 
EXCEPTIONS 
OTHERS   = 1. 
ENDMETHOD. 
* <SIGNATURE>---------------------------------------------------------------------------------------+ 
* | Instance Public Method Z_CL_MEDIA->DISPATCH 
* +-------------------------------------------------------------------------------------------------+ 
* | [--->] CARGO                          TYPE        SYUCOMM 
* | [--->] EVENTID                        TYPE        I 
* | [--->] IS_SHELLEVENT                  TYPE        CHAR1 
* | [--->] IS_SYSTEMDISPATCH              TYPE        CHAR1(optional) 
* | [EXC!] CNTL_ERROR 
* +--------------------------------------------------------------------------------------</SIGNATURE> 
METHOD dispatch. 
CALL METHOD cl_gui_cfw=>flush. 
ENDMETHOD. 
* <SIGNATURE>---------------------------------------------------------------------------------------+ 
* | Instance Public Method Z_CL_MEDIA->SETDATASOURCE 
* +-------------------------------------------------------------------------------------------------+ 
* | [--->] FILENAME                       TYPE        STRING 
* +--------------------------------------------------------------------------------------</SIGNATURE> 
METHOD setdatasource. 
CALL METHOD set_property 
EXPORTING 
property = 'FileName' 
value    = filename. 
*      CALL METHOD set_width 
*        EXPORTING 
*          width = 500. 
*      CALL METHOD set_height 
*        EXPORTING 
*          height = 200. 
CALL METHOD me->set_position 
EXPORTING 
height            = 200 
left              = 10 
top               = 10 
width             = 500 
EXCEPTIONS 
cntl_error        = 1 
cntl_system_error = 2 
OTHERS            = 3. 
IF sy-subrc <> 0. 
ENDIF. 
CALL METHOD cl_gui_cfw=>flush. 
ENDMETHOD. 
* <SIGNATURE>---------------------------------------------------------------------------------------+ 
* | Instance Public Method Z_CL_MEDIA->SET_HEIGHT 
* +-------------------------------------------------------------------------------------------------+ 
* | [--->] HEIGHT                         TYPE        I 
* | [EXC!] CNTL_ERROR 
* +--------------------------------------------------------------------------------------</SIGNATURE> 
METHOD set_height. 
CALL METHOD super->set_height 
EXPORTING 
height     = height 
EXCEPTIONS 
cntl_error = 1 
OTHERS     = 2. 
IF sy-subrc <> 0. 
* Implement suitable error handling here 
ENDIF. 
ENDMETHOD. 
* <SIGNATURE>---------------------------------------------------------------------------------------+ 
* | Instance Public Method Z_CL_MEDIA->SET_POSITION 
* +-------------------------------------------------------------------------------------------------+ 
* | [--->] HEIGHT                         TYPE        I(optional) 
* | [--->] LEFT                           TYPE        I(optional) 
* | [--->] TOP                            TYPE        I(optional) 
* | [--->] WIDTH                          TYPE        I(optional) 
* | [EXC!] CNTL_ERROR 
* | [EXC!] CNTL_SYSTEM_ERROR 
* +--------------------------------------------------------------------------------------</SIGNATURE> 
METHOD set_position. 
CALL METHOD super->set_position 
EXPORTING 
height            = height 
left              = left 
top               = top 
width             = width 
EXCEPTIONS 
cntl_error        = 1 
cntl_system_error = 2 
OTHERS            = 3. 
IF sy-subrc <> 0. 
ENDIF. 
ENDMETHOD. 
* <SIGNATURE>---------------------------------------------------------------------------------------+ 
* | Instance Public Method Z_CL_MEDIA->SET_WIDTH 
* +-------------------------------------------------------------------------------------------------+ 
* | [--->] WIDTH                          TYPE        I 
* | [EXC!] CNTL_ERROR 
* +--------------------------------------------------------------------------------------</SIGNATURE> 
METHOD set_width. 
CALL METHOD super->set_width 
EXPORTING 
width      = width 
EXCEPTIONS 
cntl_error = 1 
OTHERS     = 2. 
IF sy-subrc <> 0. 
ENDIF. 
ENDMETHOD. 
ENDCLASS.



程序ZMEDIA_PLAY
TOP:
TYPES:BEGIN OF ty_list, 
sel(1), 
name(50), 
string   TYPE string, 
END OF ty_list. 
DATA:gv_con TYPE REF TO cl_gui_custom_container. 
DATA:gl_meida      TYPE REF TO z_cl_media, 
cl_control    TYPE REF TO i_oi_container_control, 
cl_error      TYPE REF TO i_oi_error, 
g_has_activex TYPE c, 
cl_errors     TYPE REF TO i_oi_error OCCURS 0 WITH HEADER LINE. 
DATA:gt_list TYPE TABLE OF ty_list. 
DATA:gw_list LIKE LINE OF gt_list. 
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TC_9876' ITSELF 
CONTROLS: tc_9876 TYPE TABLEVIEW USING SCREEN 9876. 
*&SPWIZARD: LINES OF TABLECONTROL 'TC_9876' 
DATA:     g_tc_9876_lines  LIKE sy-loopc. 
DATA:     ok_code LIKE sy-ucomm.

PBO:

*----------------------------------------------------------------------* 
***INCLUDE ZMEIDA_PBO. 
*----------------------------------------------------------------------* 
*&---------------------------------------------------------------------* 
*&      Module  STATUS_9876  OUTPUT 
*&---------------------------------------------------------------------* 
*       text 
*----------------------------------------------------------------------* 
MODULE status_9876 OUTPUT. 
SET PF-STATUS 'MEDIA'. 
"  SET TITLEBAR 'xxx'. 
ENDMODULE. 
*&---------------------------------------------------------------------* 
*&      Module  MOD_INI_CON  OUTPUT 
*&---------------------------------------------------------------------* 
*       text 
*----------------------------------------------------------------------* 
MODULE mod_ini_con OUTPUT. 
DATA:gv_width TYPE i. 
DATA:gv_height TYPE i. 
IF gv_con IS INITIAL. 
CREATE OBJECT gv_con 
EXPORTING 
*       parent                      = 
container_name              = 'GV_CON' 
*       style                       = 
*       lifetime                    = lifetime_default 
*       repid                       = 
*       dynnr                       = 
*       no_autodef_progid_dynnr     = 
EXCEPTIONS 
cntl_error                  = 1 
cntl_system_error           = 2 
create_error                = 3 
lifetime_error              = 4 
lifetime_dynpro_dynpro_link = 5 
OTHERS                      = 6. 
IF sy-subrc <> 0. 
ENDIF. 
ENDIF. 
IF gl_meida IS INITIAL. 
CREATE OBJECT gl_meida 
EXPORTING 
parent = gv_con. 
ENDIF. 
IF gt_list IS INITIAL. 
gw_list-string = 'C:/Wildlife.wmv'. 
gw_list-name = 'Wildlife.wmv'. 
APPEND gw_list TO gt_list. 
gw_list-string = 'C:/123.mp4'. 
gw_list-name = '123.mp4'. 
APPEND gw_list TO gt_list. 
gw_list-string = 'C:/正业之歌.mp3'. 
gw_list-name = '正业之歌.mp3'. 
APPEND gw_list TO gt_list. 
ENDIF. 
CALL METHOD cl_gui_cfw=>flush. 
ENDMODULE. 
*&SPWIZARD: OUTPUT MODULE FOR TC 'TC_9876'. DO NOT CHANGE THIS LINE! 
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR 
MODULE tc_9876_change_tc_attr OUTPUT. 
DESCRIBE TABLE gt_list LINES tc_9876-lines. 
ENDMODULE. 
*&SPWIZARD: OUTPUT MODULE FOR TC 'TC_9876'. DO NOT CHANGE THIS LINE! 
*&SPWIZARD: GET LINES OF TABLECONTROL 
MODULE tc_9876_get_lines OUTPUT. 
g_tc_9876_lines = sy-loopc. 
ENDMODULE.

PAI:

*----------------------------------------------------------------------* 
***INCLUDE ZMEIDA_PAI. 
*----------------------------------------------------------------------* 
*&---------------------------------------------------------------------* 
*&      Module  USER_COMMAND_9876  INPUT 
*&---------------------------------------------------------------------* 
*       text 
*----------------------------------------------------------------------* 
MODULE user_command_9876 INPUT. 
CASE sy-ucomm. 
WHEN 'BACK'. 
LEAVE TO SCREEN 0. 
WHEN 'CANL' OR 'EXIT'. 
LEAVE PROGRAM. 
WHEN 'PLAY'. 
READ TABLE gt_list INTO gw_list WITH KEY sel = 'X'. 
IF sy-subrc = 0. 
CALL METHOD gl_meida->setdatasource 
EXPORTING 
filename = gw_list-string. 
ENDIF. 
WHEN 'ADD'. 
PERFORM prm_add_list. 
WHEN OTHERS. 
ENDCASE. 
CLEAR:sy-ucomm. 
ENDMODULE. 
*&SPWIZARD: INPUT MODUL FOR TC 'TC_9876'. DO NOT CHANGE THIS LINE! 
*&SPWIZARD: MARK TABLE 
MODULE tc_9876_mark INPUT. 
DATA: g_tc_9876_wa2 LIKE LINE OF gt_list. 
IF tc_9876-line_sel_mode = 1 
AND gw_list-sel = 'X'. 
LOOP AT gt_list INTO g_tc_9876_wa2 
WHERE sel = 'X'. 
g_tc_9876_wa2-sel = ''. 
MODIFY gt_list 
FROM g_tc_9876_wa2 
TRANSPORTING sel. 
ENDLOOP. 
ENDIF. 
MODIFY gt_list 
FROM gw_list 
INDEX tc_9876-current_line 
TRANSPORTING sel. 
ENDMODULE. 
*&SPWIZARD: INPUT MODULE FOR TC 'TC_9876'. DO NOT CHANGE THIS LINE! 
*&SPWIZARD: PROCESS USER COMMAND 
MODULE tc_9876_user_command INPUT. 
ok_code = sy-ucomm. 
PERFORM user_ok_tc USING    'TC_9876' 
'GT_LIST' 
'SEL' 
CHANGING ok_code. 
sy-ucomm = ok_code. 
ENDMODULE.

frm:

*----------------------------------------------------------------------* 
*   INCLUDE TABLECONTROL_FORMS                                         * 
*----------------------------------------------------------------------* 
*&---------------------------------------------------------------------* 
*&      Form  USER_OK_TC                                               * 
*&---------------------------------------------------------------------* 
FORM user_ok_tc USING    p_tc_name TYPE dynfnam 
p_table_name 
p_mark_name 
CHANGING p_ok      LIKE sy-ucomm. 
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 
DATA: l_ok     TYPE sy-ucomm, 
l_offset TYPE i. 
*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 
*&SPWIZARD: Table control specific operations                          * 
*&SPWIZARD: evaluate TC name and operations                            * 
SEARCH p_ok FOR p_tc_name. 
IF sy-subrc <> 0. 
EXIT. 
ENDIF. 
l_offset = strlen( p_tc_name ) + 1. 
l_ok = p_ok+l_offset. 
*&SPWIZARD: execute general and TC specific operations                 * 
CASE l_ok. 
WHEN 'INSR'.                      "insert row 
PERFORM fcode_insert_row USING    p_tc_name 
p_table_name. 
CLEAR p_ok. 
WHEN 'DELE'.                      "delete row 
PERFORM fcode_delete_row USING    p_tc_name 
p_table_name 
p_mark_name. 
CLEAR p_ok. 
WHEN 'P--' OR                     "top of list 
'P-'  OR                     "previous page 
'P+'  OR                     "next page 
'P++'.                       "bottom of list 
PERFORM compute_scrolling_in_tc USING p_tc_name 
l_ok. 
CLEAR p_ok. 
*     WHEN 'L--'.                       "total left 
*       PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME. 
* 
*     WHEN 'L-'.                        "column left 
*       PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME. 
* 
*     WHEN 'R+'.                        "column right 
*       PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME. 
* 
*     WHEN 'R++'.                       "total right 
*       PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME. 
* 
     WHEN 'MARK'.                      "mark all filled lines 
PERFORM fcode_tc_mark_lines USING p_tc_name 
p_table_name 
p_mark_name   . 
CLEAR p_ok. 
WHEN 'DMRK'.                      "demark all filled lines 
PERFORM fcode_tc_demark_lines USING p_tc_name 
p_table_name 
p_mark_name . 
CLEAR p_ok. 
*     WHEN 'SASCEND'   OR 
*          'SDESCEND'.                  "sort column 
*       PERFORM FCODE_SORT_TC USING P_TC_NAME 
*                                   l_ok. 
ENDCASE. 
ENDFORM.                              " USER_OK_TC 
*&---------------------------------------------------------------------* 
*&      Form  FCODE_INSERT_ROW                                         * 
*&---------------------------------------------------------------------* 
FORM fcode_insert_row 
USING    p_tc_name           TYPE dynfnam 
p_table_name             . 
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 
DATA l_lines_name       LIKE feld-name. 
DATA l_selline          LIKE sy-stepl. 
DATA l_lastline         TYPE i. 
DATA l_line             TYPE i. 
DATA l_table_name       LIKE feld-name. 
FIELD-SYMBOLS <tc>                 TYPE cxtab_control. 
FIELD-SYMBOLS <table>              TYPE STANDARD TABLE. 
FIELD-SYMBOLS <lines>              TYPE i. 
*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 
ASSIGN (p_tc_name) TO <tc>. 
*&SPWIZARD: get the table, which belongs to the tc                     * 
CONCATENATE p_table_name '[]' INTO l_table_name. "table body 
ASSIGN (l_table_name) TO <table>.                "not headerline 
*&SPWIZARD: get looplines of TableControl                              * 
CONCATENATE 'G_' p_tc_name '_LINES' INTO l_lines_name. 
ASSIGN (l_lines_name) TO <lines>. 
*&SPWIZARD: get current line                                           * 
GET CURSOR LINE l_selline. 
IF sy-subrc <> 0.                   " append line to table 
l_selline = <tc>-lines + 1. 
*&SPWIZARD: set top line                                               * 
IF l_selline > <lines>. 
<tc>-top_line = l_selline - <lines> + 1 . 
ELSE. 
<tc>-top_line = 1. 
ENDIF. 
ELSE.                               " insert line into table 
l_selline = <tc>-top_line + l_selline - 1. 
l_lastline = <tc>-top_line + <lines> - 1. 
ENDIF. 
*&SPWIZARD: set new cursor line                                        * 
l_line = l_selline - <tc>-top_line + 1. 
*&SPWIZARD: insert initial line                                        * 
INSERT INITIAL LINE INTO <table> INDEX l_selline. 
<tc>-lines = <tc>-lines + 1. 
*&SPWIZARD: set cursor                                                 * 
SET CURSOR LINE l_line. 
ENDFORM.                              " FCODE_INSERT_ROW 
*&---------------------------------------------------------------------* 
*&      Form  FCODE_DELETE_ROW                                         * 
*&---------------------------------------------------------------------* 
FORM fcode_delete_row 
USING    p_tc_name           TYPE dynfnam 
p_table_name 
p_mark_name   . 
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 
DATA l_table_name       LIKE feld-name. 
FIELD-SYMBOLS <tc>         TYPE cxtab_control. 
FIELD-SYMBOLS <table>      TYPE STANDARD TABLE. 
FIELD-SYMBOLS <wa>. 
FIELD-SYMBOLS <mark_field>. 
*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 
ASSIGN (p_tc_name) TO <tc>. 
*&SPWIZARD: get the table, which belongs to the tc                     * 
CONCATENATE p_table_name '[]' INTO l_table_name. "table body 
ASSIGN (l_table_name) TO <table>.                "not headerline 
*&SPWIZARD: delete marked lines                                        * 
DESCRIBE TABLE <table> LINES <tc>-lines. 
LOOP AT <table> ASSIGNING <wa>. 
*&SPWIZARD: access to the component 'FLAG' of the table header         * 
ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>. 
IF <mark_field> = 'X'. 
DELETE <table> INDEX syst-tabix. 
IF sy-subrc = 0. 
<tc>-lines = <tc>-lines - 1. 
ENDIF. 
ENDIF. 
ENDLOOP. 
ENDFORM.                              " FCODE_DELETE_ROW 
*&---------------------------------------------------------------------* 
*&      Form  COMPUTE_SCROLLING_IN_TC 
*&---------------------------------------------------------------------* 
*       text 
*----------------------------------------------------------------------* 
*      -->P_TC_NAME  name of tablecontrol 
*      -->P_OK       ok code 
*----------------------------------------------------------------------* 
FORM compute_scrolling_in_tc USING    p_tc_name 
p_ok. 
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 
DATA l_tc_new_top_line     TYPE i. 
DATA l_tc_name             LIKE feld-name. 
DATA l_tc_lines_name       LIKE feld-name. 
DATA l_tc_field_name       LIKE feld-name. 
FIELD-SYMBOLS <tc>         TYPE cxtab_control. 
FIELD-SYMBOLS <lines>      TYPE i. 
*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 
ASSIGN (p_tc_name) TO <tc>. 
*&SPWIZARD: get looplines of TableControl                              * 
CONCATENATE 'G_' p_tc_name '_LINES' INTO l_tc_lines_name. 
ASSIGN (l_tc_lines_name) TO <lines>. 
*&SPWIZARD: is no line filled?                                         * 
IF <tc>-lines = 0. 
*&SPWIZARD: yes, ...                                                   * 
l_tc_new_top_line = 1. 
ELSE. 
*&SPWIZARD: no, ...                                                    * 
CALL FUNCTION 'SCROLLING_IN_TABLE' 
EXPORTING 
entry_act      = <tc>-top_line 
entry_from     = 1 
entry_to       = <tc>-lines 
last_page_full = 'X' 
loops          = <lines> 
ok_code        = p_ok 
overlapping    = 'X' 
IMPORTING 
entry_new      = l_tc_new_top_line 
EXCEPTIONS 
*        NO_ENTRY_OR_PAGE_ACT  = 01 
*        NO_ENTRY_TO    = 02 
*        NO_OK_CODE_OR_PAGE_GO = 03 
OTHERS         = 0. 
ENDIF. 
*&SPWIZARD: get actual tc and column                                   * 
GET CURSOR FIELD l_tc_field_name 
AREA  l_tc_name. 
IF syst-subrc = 0. 
IF l_tc_name = p_tc_name. 
*&SPWIZARD: et actual column                                           * 
SET CURSOR FIELD l_tc_field_name LINE 1. 
ENDIF. 
ENDIF. 
*&SPWIZARD: set the new top line                                       * 
<tc>-top_line = l_tc_new_top_line. 
ENDFORM.                              " COMPUTE_SCROLLING_IN_TC 
*&---------------------------------------------------------------------* 
*&      Form  FCODE_TC_MARK_LINES 
*&---------------------------------------------------------------------* 
*       marks all TableControl lines 
*----------------------------------------------------------------------* 
*      -->P_TC_NAME  name of tablecontrol 
*----------------------------------------------------------------------* 
FORM fcode_tc_mark_lines USING p_tc_name 
p_table_name 
p_mark_name. 
*&SPWIZARD: EGIN OF LOCAL DATA-----------------------------------------* 
DATA l_table_name       LIKE feld-name. 
FIELD-SYMBOLS <tc>         TYPE cxtab_control. 
FIELD-SYMBOLS <table>      TYPE STANDARD TABLE. 
FIELD-SYMBOLS <wa>. 
FIELD-SYMBOLS <mark_field>. 
*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 
ASSIGN (p_tc_name) TO <tc>. 
*&SPWIZARD: get the table, which belongs to the tc                     * 
CONCATENATE p_table_name '[]' INTO l_table_name. "table body 
ASSIGN (l_table_name) TO <table>.                "not headerline 
*&SPWIZARD: mark all filled lines                                      * 
LOOP AT <table> ASSIGNING <wa>. 
*&SPWIZARD: access to the component 'FLAG' of the table header         * 
ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>. 
<mark_field> = 'X'. 
ENDLOOP. 
ENDFORM.                                          "fcode_tc_mark_lines 
*&---------------------------------------------------------------------* 
*&      Form  FCODE_TC_DEMARK_LINES 
*&---------------------------------------------------------------------* 
*       demarks all TableControl lines 
*----------------------------------------------------------------------* 
*      -->P_TC_NAME  name of tablecontrol 
*----------------------------------------------------------------------* 
FORM fcode_tc_demark_lines USING p_tc_name 
p_table_name 
p_mark_name . 
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* 
DATA l_table_name       LIKE feld-name. 
FIELD-SYMBOLS <tc>         TYPE cxtab_control. 
FIELD-SYMBOLS <table>      TYPE STANDARD TABLE. 
FIELD-SYMBOLS <wa>. 
FIELD-SYMBOLS <mark_field>. 
*&SPWIZARD: END OF LOCAL DATA------------------------------------------* 
ASSIGN (p_tc_name) TO <tc>. 
*&SPWIZARD: get the table, which belongs to the tc                     * 
CONCATENATE p_table_name '[]' INTO l_table_name. "table body 
ASSIGN (l_table_name) TO <table>.                "not headerline 
*&SPWIZARD: demark all filled lines                                    * 
LOOP AT <table> ASSIGNING <wa>. 
*&SPWIZARD: access to the component 'FLAG' of the table header         * 
ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>. 
<mark_field> = space. 
ENDLOOP. 
ENDFORM.                                          "fcode_tc_mark_lines 
*&---------------------------------------------------------------------* 
*&      Form  PRM_ADD_LIST 
*&---------------------------------------------------------------------* 
*       text 
*----------------------------------------------------------------------* 
*  -->  p1        text 
*  <--  p2        text 
*----------------------------------------------------------------------* 
FORM prm_add_list . 
DATA:lt_file TYPE filetable. 
DATA:ls_file LIKE LINE OF lt_file. 
DATA:gv_return TYPE i. 
CALL METHOD cl_gui_frontend_services=>file_open_dialog 
*  EXPORTING 
*    window_title            = 
*    default_extension       = 
*    default_filename        = 
*    file_filter             = 
*    with_encoding           = 
*    initial_directory       = 
*    multiselection          = 
CHANGING 
file_table              = lt_file 
rc                      = gv_return 
*      user_action             = 
*      file_encoding           = 
EXCEPTIONS 
file_open_dialog_failed = 1 
cntl_error              = 2 
error_no_gui            = 3 
not_supported_by_gui    = 4 
OTHERS                  = 5. 
IF sy-subrc <> 0. 
ENDIF. 
IF lt_file IS NOT INITIAL. 
LOOP AT lt_file INTO ls_file. 
gw_list-string = ls_file-filename. 
SPLIT ls_file-filename AT '/' INTO ls_file-filename gw_list-name. 
WHILE gw_list-name CS '/'. 
SPLIT ls_file-filename AT '/' INTO ls_file-filename gw_list-name. 
ENDWHILE. 
APPEND gw_list TO gt_list. 
ENDLOOP. 
SORT gt_list BY name. 
DELETE ADJACENT DUPLICATES FROM gt_list COMPARING name. 
ENDIF. 
ENDFORM.

在屏幕上分两块,左边为视频或音频播放栏,右边为文件列表,可新增本地文件,可点击文件播放

SAP播放本地视频及音频(仅限于window MediaPlayer可播放文件)详解编程语言

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/18636.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论