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 =
EXCEPTIONS
OTHERS = . 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 =
left =
top =
width =
EXCEPTIONS
cntl_error =
cntl_system_error =
OTHERS = .
IF sy-subrc <> .
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 =
OTHERS = .
IF sy-subrc <> .
* 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 =
cntl_system_error =
OTHERS = .
IF sy-subrc <> .
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 =
OTHERS = .
IF sy-subrc <> .
ENDIF.
ENDMETHOD.
ENDCLASS. 程序ZMEDIA_PLAY
TOP:
TYPES:BEGIN OF ty_list,
sel(),
name(),
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 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 . *&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 =
cntl_system_error =
create_error =
lifetime_error =
lifetime_dynpro_dynpro_link =
OTHERS = .
IF sy-subrc <> .
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 .
WHEN 'CANL' OR 'EXIT'.
LEAVE PROGRAM.
WHEN 'PLAY'.
READ TABLE gt_list INTO gw_list WITH KEY sel = 'X'.
IF sy-subrc = .
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 =
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 <> .
EXIT.
ENDIF.
l_offset = strlen( p_tc_name ) + .
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 <> . " append line to table
l_selline = <tc>-lines + .
*&SPWIZARD: set top line *
IF l_selline > <lines>.
<tc>-top_line = l_selline - <lines> + .
ELSE.
<tc>-top_line = .
ENDIF.
ELSE. " insert line into table
l_selline = <tc>-top_line + l_selline - .
l_lastline = <tc>-top_line + <lines> - .
ENDIF.
*&SPWIZARD: set new cursor line *
l_line = l_selline - <tc>-top_line + . *&SPWIZARD: insert initial line *
INSERT INITIAL LINE INTO <table> INDEX l_selline.
<tc>-lines = <tc>-lines + .
*&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 = .
<tc>-lines = <tc>-lines - .
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 = .
*&SPWIZARD: yes, ... *
l_tc_new_top_line = .
ELSE.
*&SPWIZARD: no, ... *
CALL FUNCTION 'SCROLLING_IN_TABLE'
EXPORTING
entry_act = <tc>-top_line
entry_from =
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 = .
ENDIF. *&SPWIZARD: get actual tc and column *
GET CURSOR FIELD l_tc_field_name
AREA l_tc_name. IF syst-subrc = .
IF l_tc_name = p_tc_name.
*&SPWIZARD: et actual column *
SET CURSOR FIELD l_tc_field_name LINE .
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 =
cntl_error =
error_no_gui =
not_supported_by_gui =
OTHERS = .
IF sy-subrc <> .
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可播放文件)的更多相关文章
- Swift - 使用Media Player播放本地视频,在线视频
Media Player框架用于播放本地视频.音频,也可以在线播放视频和音频. 1,播放器MPMovieControlStyle样式有如下几种: (1)None: 没有播放控制控件 (2)Embedd ...
- 照相、从相册上取照片、播放音频、播放本地视频、播放网络视频、MPMoviePlayerController
一.照相.从相册上去照片 1. 先判断是否支持照相功能 *判断当前设备是否支持照相功能,支持返回YES 否则返回NO 注意:模拟器不支持照相功能 把握一个原则只要是物理硬件相关的功能模拟器都不支持 例 ...
- Android开发 MediaPlayer入门_播放本地视频
前言 MediaPlayer,可以播放视频/音频,并且它支持本地和网络文件的播放.本片博客作为入门教程,先以最通俗的方式解释播放文件本地视频.(如果你嫌MediaPlayer还是太麻烦可以试试选择Vi ...
- potplayer 网页调用potplayer播放本地视频
网页调用potplayer播放本地视频 CreateTime--2018年1月3日10:36:24 Author:Marydon 源码展示: <!DOCTYPE html> <h ...
- video.js不能控制本地视频或者音频播放时长
问题: 把视频放到本地,然后对视频进行测试,想要控制视频或者音频的播放时长,没办法做到,每次拉动进度条,都会使得本地视频重新播放 原因: 所有浏览器默认js无法访问本地地址,也就是说js不能对本地文件 ...
- Android 视频播放器 VideoView 的使用,播放本地视频 和 网络 视频
1.布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...
- Android使用VideoView播放本地视频及网络视频Demo
1.xm文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...
- Android中webview html5 自动播放本地视频
MainActivity代码 public class Html5VideoAutoPlay extends Activity { WebView webview = null; @Override ...
- Android 使用意图播放本地视频
Android播放视频的方式有三种: 一.使用意图播放,调用本地安装的播放器,选择一个进行播放. 二.使用VideoView播放(VideoView事实上是对MediaPlayer的封装,使用起来非常 ...
随机推荐
- JavaScript:this是什么?
JavaScript:this是什么?定义:this是包含它的函数作为方法被调用时所属的对象.说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它! 1.包含它的函数.2 ...
- dataRow转化为对象
对象类名useInfo,int,short,string,DateTime格式如下: userInfo.ErrorTimes = int.Parse(dataRow["ErrorTimes& ...
- input标签file的value属性IE兼容性问题
在IE中input标签file的value属性是只读的,不能通过js来改变,如下代码在IE中就是无效的: var input = document.getElementById('file'); in ...
- 第一章.C语言简介
C语言第一章 C语言简介 目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...
- Uva 10891 经典博弈区间DP
经典博弈区间DP 题目链接:https://uva.onlinejudge.org/external/108/p10891.pdf 题意: 给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能 ...
- jquey与javascript相通运用查找(全)
1.addClass\removeClass\classList(js) jQ:$('#div').addClass('hover')=====document.getElementById('div ...
- Markdown工具之---Typora
在项目集成阶段中,接口文档是不可避免的,以往的我使用word编辑器编写接口文档,虽然word使用不是很熟练,但是只要在网上下载模板或者自己花时间搞定一个文档格式 基本能一劳永逸.但是还是会有很多问题存 ...
- web前端之HTML的大框架(body元素与frameset元素)
web前端之HTML的大框架 body元素与frameset元素 对于从事html的人员来说,我们一般熟悉的框架是先声明html ,然后在<html>标签对里包着<head ...
- d3.js读书笔记-2
比例尺 比例尺基本内容 比例尺是一组把输入域映射为输出范围的函数.任意数据集中的值不可能恰好与图表中的像素尺度一一对应.比例尺就是把这些数据值映射为可视化图形中使用的新值的便捷手段.D3的比例尺就是那 ...
- Javascript运用函数计算正方形的面积
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...