SAP中调用MEDIA PLAYER的代码

文章转自 http://blog.csdn.net/jy00873757/article/details/8975745

在SCREEN 中定义一个容器,名字是CONT

PLAY、STOP、BACK 按钮

PBO中对于FILE调用本地文件浏览方法

  1. *&---------------------------------------------------------------------*
  2. *& Report ZMEDIOPLAYER_TEST
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8. REPORT zmedioplayer_test.
  9. CLASS lcl_player DEFINITION DEFERRED.
  10. DATA o_b TYPE REF TO lcl_player.
  11. DATA cont TYPE REF TO cl_gui_custom_container.
  12. DATA ok_code TYPE sy-ucomm.
  13. data file like rlgrap-filename.
  14. *----------------------------------------------------------------------*
  15. * CLASS lcl_player DEFINITION
  16. *----------------------------------------------------------------------*
  17. CLASS lcl_player DEFINITION INHERITING FROM cl_gui_control.
  18. PUBLIC SECTION.
  19. METHODS:
  20. constructor
  21. * IMPORTING
  22. * cont TYPE REF TO cl_gui_custom_container
  23. EXCEPTIONS
  24. cntl_error
  25. cntl_install_error ,
  26. stop,
  27. play.
  28. ENDCLASS. "lcl_player DEFINITION
  29. *----------------------------------------------------------------------*
  30. * CLASS lcl_player IMPLEMENTATION
  31. *----------------------------------------------------------------------*
  32. CLASS lcl_player IMPLEMENTATION.
  33. METHOD constructor.
  34. CALL METHOD super->constructor
  35. EXPORTING
  36. clsid = '{6BF52A52-394A-11d3-B153-00C04F79FAA6}'
  37. parent = cont
  38. EXCEPTIONS
  39. cntl_system_error = 1
  40. OTHERS = 2.
  41. CASE sy-subrc .
  42. WHEN 1 .
  43. RAISE cntl_install_error .
  44. WHEN 2 .
  45. RAISE cntl_error .
  46. ENDCASE .
  47. CALL METHOD cl_gui_cfw=>subscribe
  48. EXPORTING
  49. ref = me
  50. shellid = me->h_control-shellid
  51. EXCEPTIONS
  52. OTHERS = 1.
  53. IF sy-subrc NE 0 .
  54. RAISE cntl_error .
  55. ENDIF .
  56. ENDMETHOD. "constructor
  57. METHOD stop.
  58. CALL METHOD me->call_method
  59. EXPORTING
  60. method = 'Close'
  61. EXCEPTIONS
  62. cntl_error = 1
  63. cntl_system_error = 2
  64. OTHERS = 3.
  65. IF sy-subrc <> 0.
  66. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  67. WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  68. ENDIF.
  69. ENDMETHOD. "STOP
  70. METHOD play.
  71. DATA: l_url TYPE char100.
  72. CHECK file IS NOT INITIAL.
  73. l_url = file.
  74. REPLACE ALL OCCURRENCES OF '/' IN l_url WITH '//'.
  75. CONCATENATE 'file://' l_url INTO l_url.
  76. CALL METHOD set_property
  77. EXPORTING
  78. property = 'Url'
  79. value = l_url
  80. EXCEPTIONS
  81. cntl_system_error = 1
  82. cntl_error = 2
  83. OTHERS = 3.
  84. ENDMETHOD. "play
  85. ENDCLASS. "lcl_player IMPLEMENTATION
  86. START-OF-SELECTION.
  87. CALL SCREEN 100.
  88. *&---------------------------------------------------------------------*
  89. *& Module STATUS_0100 OUTPUT
  90. *&---------------------------------------------------------------------*
  91. * text
  92. *----------------------------------------------------------------------*
  93. MODULE status_0100 OUTPUT.
  94. IF cont IS INITIAL.
  95. CREATE OBJECT cont
  96. EXPORTING
  97. container_name = 'CONT'.
  98. CREATE OBJECT o_b.
  99. ENDIF.
  100. ENDMODULE. " STATUS_0100 OUTPUT
  101. *&---------------------------------------------------------------------*
  102. *& Module USER_COMMAND_0100 INPUT
  103. *&---------------------------------------------------------------------*
  104. * text
  105. *----------------------------------------------------------------------*
  106. MODULE user_command_0100 INPUT.
  107. CASE sy-ucomm.
  108. WHEN 'BACK'.
  109. LEAVE TO SCREEN 0.
  110. WHEN 'PLAY'.
  111. CALL METHOD o_b->play.
  112. WHEN 'STOP'.
  113. CALL METHOD o_b->stop.
  114. ENDCASE.
  115. ENDMODULE. " USER_COMMAND_0100 INPUT
  116. *&---------------------------------------------------------------------*
  117. *& Module choose_file OUTPUT
  118. *&---------------------------------------------------------------------*
  119. * text
  120. *----------------------------------------------------------------------*
  121. MODULE choose_file OUTPUT.
  122. IF file IS INITIAL.
  123. CALL FUNCTION 'WS_FILENAME_GET'
  124. EXPORTING
  125. def_filename = '*.*'
  126. mask = ',*.*,*.*.'
  127. title = 'SELECT YOUR LOCAL FILE'
  128. IMPORTING
  129. filename = file
  130. EXCEPTIONS
  131. inv_winsys = 1
  132. no_batch = 2
  133. selection_cancel = 3
  134. selection_error = 4
  135. OTHERS = 5.
  136. ELSE.
  137. ENDIF.
  138. ENDMODULE. " choose_file OUTPUT

有待改善的地方:在屏幕中的FILE字段的按钮不好使。

效果如下:

部分代码转自:http://sapjava.javaeye.com/blog/536926

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值