这个是从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可播放文件)的更多相关文章

  1. Swift - 使用Media Player播放本地视频,在线视频

    Media Player框架用于播放本地视频.音频,也可以在线播放视频和音频. 1,播放器MPMovieControlStyle样式有如下几种: (1)None: 没有播放控制控件 (2)Embedd ...

  2. 照相、从相册上取照片、播放音频、播放本地视频、播放网络视频、MPMoviePlayerController

    一.照相.从相册上去照片 1. 先判断是否支持照相功能 *判断当前设备是否支持照相功能,支持返回YES 否则返回NO 注意:模拟器不支持照相功能 把握一个原则只要是物理硬件相关的功能模拟器都不支持 例 ...

  3. Android开发 MediaPlayer入门_播放本地视频

    前言 MediaPlayer,可以播放视频/音频,并且它支持本地和网络文件的播放.本片博客作为入门教程,先以最通俗的方式解释播放文件本地视频.(如果你嫌MediaPlayer还是太麻烦可以试试选择Vi ...

  4. potplayer 网页调用potplayer播放本地视频

      网页调用potplayer播放本地视频 CreateTime--2018年1月3日10:36:24 Author:Marydon 源码展示: <!DOCTYPE html> <h ...

  5. video.js不能控制本地视频或者音频播放时长

    问题: 把视频放到本地,然后对视频进行测试,想要控制视频或者音频的播放时长,没办法做到,每次拉动进度条,都会使得本地视频重新播放 原因: 所有浏览器默认js无法访问本地地址,也就是说js不能对本地文件 ...

  6. Android 视频播放器 VideoView 的使用,播放本地视频 和 网络 视频

    1.布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...

  7. Android使用VideoView播放本地视频及网络视频Demo

    1.xm文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...

  8. Android中webview html5 自动播放本地视频

    MainActivity代码 public class Html5VideoAutoPlay extends Activity { WebView webview = null; @Override ...

  9. Android 使用意图播放本地视频

    Android播放视频的方式有三种: 一.使用意图播放,调用本地安装的播放器,选择一个进行播放. 二.使用VideoView播放(VideoView事实上是对MediaPlayer的封装,使用起来非常 ...

随机推荐

  1. 使用JDOM操作XML

    JDOM介绍 JDOM是使用Java语言编写的,用于读写及操作XML的一套组件,Jdom同时具有DOM修改文件的优点和SAX读取快速的优点. JDOM的使用 首先下载JDOM的JAR包,本文使用的是j ...

  2. 数据结构 B-树和B+树的应用:数据搜索和数据库索引

    B-树 1 .B-树定义 B-树是一种平衡的多路查找树,它在文件系统中很有用. 定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树:⑵若根结点不是叶子结点 ...

  3. mongoose 的 model,query:增删改查

    简介 mongoose是node.js的一个操作mongodb的模块,比起之前mongodb模块,只需要在开始时连接,不需要手动关闭,十分方便. 连接mongodb 首先你需要安装mongodb.有了 ...

  4. Bootstrap 模态框(Modal)插件

    原文链接:http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html Bootstrap 模态框(Modal)插件 模态框(Modal)是覆 ...

  5. Windows光标形状

    ::SetCursor( LoadCursor(NULL, IDC_XXX) ); IDC_ARROW (plain) IDC_HELP (arrow + question mark) IDC_APP ...

  6. angularJS: shop chart

    <!DOCTYPE html> <html ng-app="app">   <head>     <meta charset=" ...

  7. 一个简单的loading,纯属自娱自乐

    /// <reference path="/scripts/js/jquery.min.js" /> var zsw = { loading: function (im ...

  8. 点击表格tr同时点击checkbox

    项目里偶然要用到这个功能,写到了就记一下吧.

  9. css伪类的展现

    常见的伪类选择器 :link :hover :active :visited 如果为以上几个伪类赋予相同css属性名,不同的css属性值 <!DOCTYPE html> <html ...

  10. sql连表分页查询(存储过程)

    1.平时分页查询都比较多针对一个表的数据 而这个分页查询是针对连表查询的 ,这也是我网上改版别人的sql语句 先在数据库新建一个存储过程 拷贝以下代码 CREATE PROCEDURE [dbo].[ ...