android视频播放器-源码

android视频播放器-源码
android视频播放器-源码

本文讲的是“android 视频播放器”,并附有播放器源代码

1.开发环境:

eclipse3.6

ADT-0.9.7

AVD1.6

2.程序运行效果

A.启动AVD(虚拟设备)在应用程序界面主界面,我们可以看到“艾文

播放器”

B.点击打开后,会播放默认的一个coco的广告

C.点击标题栏的按钮可以打开文件浏览器

D.点击视频文件,会提示使用的播放器

E.选择“艾文视频播放器”打开后,按ctrl+f12,切换到横屏,发现视

频并没有中断,而是继续播放

3.源码分析

A.图片都是网上找的,还有就是自己收藏的地方翻出来的,不多讲了。

B.布局文件

main.xml:期中包含一个videoview,用于播放视频图像titlebar.xml:主视图的标题栏布局,主要用于添加一个菜单按钮,点击后打开文件浏览器

myfile.xml:为文件浏览器布局

C.VideoPlay.java

view plaincopy to clipboardprint?

1.package com.bestaone;

2.

3.import android.app.Activity;

4.import android.content.Intent;

5.import https://www.360docs.net/doc/0f19406974.html,.Uri;

6.import android.os.Bundle;

7.import android.util.Log;

8.import android.view.View;

9.import android.view.View.OnClickListener;

10.import android.view.Window;

11.import android.view.WindowManager;

12.import android.widget.ImageButton;

13.import android.widget.MediaController;

14.import android.widget.TextView;

15.import android.widget.VideoView;

16.

17.public class VideoPlay extends Activity {

18.

19. private VideoView videoView;

20. private static int index = 0;

21.

22.@Override

23. public void onCreate(Bundle savedInstanceState) {

24. super.onCreate(savedInstanceState);

25. requestWindowFeature(Window.FEATURE_C USTOM_TITLE);

26. setContentView(https://www.360docs.net/doc/0f19406974.html,yout.main);

27. getWindow().setFlags(https://www.360docs.net/doc/0f19406974.html,youtParams.FLAG_FULLSCREEN, Windo

https://www.360docs.net/doc/0f19406974.html,youtParams.FLAG_FULLSCREEN);//

28. //设置标题栏的布局

29. getWindow().setFeatureInt(Window.FEATURE_C USTOM_TITLE, https://www.360docs.net/doc/0f19406974.html,yout.titlebar);

30. //这个空间暂时没用

31. final TextView titleTV = (TextView) findViewById(R.id.title);

32. titleTV.setText("");

33. ImageButton titleButton = (ImageButton) findViewById(R.id.titleButton);

34. //为按钮添加鼠标点击事件

35. titleButton.setOnClickListener(new OnClickListener() {

36.@Override

37. public void onClick(View v) {

38. Intent intent = new Intent();

39. intent.setClass(VideoPlay.this, MyFile.class);

40. //打开MyFile activity

41. startActivity(intent);

42. }

43. });

44. Intent intent = getIntent();

45. String value = intent.ge tDataString();

46. videoView = (VideoView) findViewById(R.id.VideoView01);

47. if(value==null){

48. //加载默认视频

49. videoView.setVideoURI(Uri.parse("android.resource://com.bestaone/" + R.draw

able.coco));

50. }else{

51. //通过文件浏览器传过来的视频路径,播放

52. videoView.setVideoPath(value);

53. }

54. videoView.setMediaController(new MediaController(VideoPlay.this));

55. videoView.requestFocus();

56. }

57.

58. //启动

59.@Override

60. protected void onStart() {

61. super.onStart();

62. Log.i("mp4", "@@@ on start");

63. }

64.

65.@Override

66. protected void onResume() {

67. super.onResume();

68. videoView.seekTo(index);

69. videoView.start();

70. Log.i("mp4", "@@@ on resume");

71. }

72.

73. //暂停

74.@Override

75. protected void onPause() {

76. super.onPause();

77. Log.i("mp4", "@@@ on pause");

78. }

79.

80. //停止

81.@Override

82. protected void onStop() {

83. super.onStop();

3.import java.io.File;

4.import java.util.ArrayList;

5.import java.util.List;

6.

7.import android.app.ListActivity;

8.import android.content.Intent;

9.import https://www.360docs.net/doc/0f19406974.html,.Uri;

10.import android.os.Bundle;

11.import android.view.KeyEvent;

12.import android.view.View;

13.import android.widget.AdapterView;

14.import android.widget.AdapterView.OnItemLongClickListener;

15.import android.widget.Button;

16.import android.widget.EditText;

17.import android.widget.ImageButton;

18.import android.widget.ListView;

19.import android.widget.TextView;

20.import android.widget.Toast;

21.

22.public class MyFile extends ListActivity implements OnItemLongClickListener {

23.

24. //支持的视频格式

25. private final String[][] FILE_MapTable = {

26.

27. // {后缀名, MI ME类型}

28. { ".3gp", "video/3gpp" },

29. { ".mov", "video/quicktime" },

30. { ".avi", "video/x-msvideo" },

31. { ".rmvb", "audio/x-pn-realaudio" },

32. { ".wmv", "audio/x-ms-wmv" }

33.

34. };

35.

36. private List items = null; // items:存放显示的名称

37. private List paths = null; // paths:存放文件路径

38. private List sizes = null; // sizes:文件大小

39. private String rootPath = "/"; // rootPath:起始文件夹

40. private TextView path_edit;

41. private ImageButton rb_qry;

42. private int isZoom = 0;

43. private int isOpen = 0;

44.

45.

46. /**

47. * 重写返回键功能:返回上一级文件夹

48. */

49.@Override

50. public boolean onKeyDown(int keyCode, KeyEvent event) {

51. // 是否触发按键为back键

52. if (keyCode == KeyEvent.KEYCODE_BACK) {

53. path_edit = (EditText) findViewById(R.id.path_edit);

54. File file = new File(pa th_edit.getText().toString());

55. if (rootPath.equals(path_edit.getText().toString())) {

56. return super.onKeyDown(keyCode, event);

57. } else {

58. getFileDir(file.getParent());

59. return true;

60. }

61. // 如果不是back键正常响应

62. } else {

63. return super.onKeyDown(keyCode, event);

64. }

65. }

66.

67.@Override

68. protected void onCreate(Bundle icicle) {

69. super.onCreate(icicle);

70. setContentView(https://www.360docs.net/doc/0f19406974.html,yout.myfile);

71.

72. path_edit = (EditText) findViewById(R.id.path_edit);

73. rb_qry = (ImageButton) findViewById(R.id.qry_button);

74. rb_qry.setOnClickListener(listener_qry);

75. getListView().setO nItemLongClickListener(this);

76. getFileDir(rootPath);

77. }

78.

79. Button.OnClickListener listener_qry = new Button.OnClickListener() {

80. public void onClick(View arg0) {

81. File file = new File(pa th_edit.getText().toString());

82. if (file.exists()) {

83. if (file.isFile()) {

84. openFile(file);

85. } else {

86. getFileDir(path_edit.getText().toString());

87. }

88. } else {

89. Toast.makeText(MyFile.this, "找不到该位置,请确定位置是否正确!",Toast.LENGTH

_SHORT).show();

90. }

91. }

92. };

93.

94. /**

95. * 设置ListI tem被点击时要做的动作

96. */

97.@Override

98. protected void onListItemClick(ListView l, View v, int position, long id) {

99. File file = new File(paths.get(position));

100. fileOrDirHandle(file);

101. }

102.

103.

104. /**

105. * 处理文件或者目录的方法

106. * @param file

107. * @param flag

108. */

109. private void fileOrDirHandle(final File file) {

110. if (file.isDirectory()) {

111. getFileDir(file.getPath());

112. } else {

113. openFile(file);

114. }

115. }

116.

117. /**

118. * 取得文件结构的方法

119. * @param filePath

120. */

121. private void getFileDir(String filePath) {

122. /* 设置目前所在路径 */

123. path_edit.setText(filePath);

124. items = new ArrayList();

125. paths = new ArrayList();

126. sizes = new ArrayList();

127. File f = new File(filePath);

128. File[] files = f.listFiles();

129. if (files != null) {

130. /* 将所有文件添加ArrayList中 */

131. for (int i = 0; i < files.length; i++) {

132. if (files[i].isDirectory()) {

133. items.add(files[i].getName());

134. paths.add(files[i].getPath());

135. sizes.add("");

136. }

137. }

138.

139. for (int i = 0; i < files.length; i++) {

140. if (files[i].isFile()) {

141. String fileName = files[i].getName();

142. int index = https://www.360docs.net/doc/0f19406974.html,stIndexOf(".");

143. if(index>0){

144. String endName = fileName.substring(index,fileName.length()).toLowe rCase();

145. String type = null;

146. for(int x=0; x

147. //支持的格式,才会在文件浏览器中显示

148. if(endName.equals(FILE_MapTable[x][0])){

149. type = FILE_MapTable[x][1];

150. break;

151. }

152. }

153. if(type!=null){

154. items.add(files[i].getName());

155. paths.add(files[i].getPath());

156. sizes.add(MyUtil.fileSizeMsg(files[i]));

157. }

158. }

159. }

160. }

161. }

162. /* 使用自定义的MyAdapter来将数据传入ListActivity */

163. setListAdapter(new FileListAdapter(this, items, pa ths, sizes, isZoom)); 164. }

165.

166.

167. /**

168. * 打开文件

169. * @param f

170. */

171. private void openFile(File f) {

172. Intent intent = new Intent();

173. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

174. intent.setAction(android.content.Intent.ACTION_VIEW);

175. // 跳出列表供选择

176. String type = "video/*";

177. if (isOpen == 0) {

178. type = MyUtil.getMI METype(f, true);

179. }

180. // 设置intent的file与MimeType

181. intent.setDataAndType(Uri.fromFile(f), type);

182.// intent.putEx tra("path", "sms_context");

183. startActivity(intent);

184. }

185.

186.@Override

187. public boolean onItemLongClick(AdapterView arg0, View arg1, int arg2, 188. long arg3) {

189. // TODO Auto-generated method stub

190. return false;

191. }

192.

193.}

基于Android的多功能视频播放器的系统设计

文档编号:基于Android的多功能视频播放器 系统设计说明书 目录 1引言 4 1.1目的 4 1.2适用范围 4 2系统架构 5 2.1硬件架构 5 2.2软件架构 9 3完整功能结构图 11 4系统数据库设计 11 4.1 E-R图设计 11 4.2字段设计 11 4.2.1本地视频文件记录表 11

4.2.2历史播放文件表 12 4.2.3 收藏文件表 12 5视频播放器部署图 13 6 系统需求 13 6.1系统界面需求 13 6.2系统性能需求 13 6.1系统开发环境需求 14 7视频播放器流程图 14 1引言 1.1目的 本文档是多通道同步数字记录仪升级换代项目的系统设计文档。从系统的高层角度对系统的硬件架构、软件架构、网络架构、系统部署、系统运行方式进行设计,为下一步各个模块的详细设计提供系统级的视图。 1.2适用范围 本文用于描述多通道同步数字记录仪升级换代项目的系统设计,给出系统的主要架构与配置项,对相关运行、数据、用户接口、容错与复用和重要模块进行分

析,作为项目后续详细设计与开发实现的依据。本说明书的阅读对象为:跟我们同龄的有一定基础的大学生,以及相关的项目开发人员等等。 2系统架构 2.1硬件架构 2.1.1 JDK安装 JDK是Java语言的原创者推出的原始开发环境。采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。在Windows上安装JDK非常简单,访问Oracle官方网站下载页面,网址为,也可从其他网站下载。下载完成后,双击运行JDK安装程序并根据提示设定环境变量。 2.1.2 Android SDK安装以及系统设置 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,默认SDK安装目录为$SDK_ROOT 。 ● Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH 变量的行,可以自己添加一行: export PATH=${PATH}:<$SDK_ROOT/tools的完全路径> ● Mac下,在home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,可以创建一个.bash_profile文件。 ● Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

各视频格式播放代码

1。avi格式 代码片断如下: <object id="video" width="400" height="200" border="0" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <param name="ShowDisplay" value="0"> <param name="ShowControls" value="1"> <param name="AutoStart" value="1"> <param name="AutoRewind" value="0"> <param name="PlayCount" value="0"> <param name="Appearance value="0 value="""> <param name="BorderStyle value="0 value="""> <param name="MovieWindowHeight" value="240"> <param name="MovieWindowWidth" value="320"> <param name="FileName" value="/Mbar。avi"> <embed width="400" height="200" border="0" showdisplay="0" showc autostart="1" autorewind="0" playcount="0" moviewindowheight="240" moviewindowwidth="320" filename="/Mbar。avi" src="Mbar。avi"> </embed> </object> 2。mpg格式 代码片断如下: <object classid="clsid:05589FA1-C356-11CE-BF01-00AA0055595A" id="ActiveMovie1" width="239" height="250">

Java实现视频网站的视频上传及视频播放功能

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash 制作的播放器来播放该文件.项目中用制作的播放器. 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。?? ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。 1.能支持的格式 ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) 2.不能支持的格式 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等),可以先用别的工具(mencoder)转换为avi(ffmpeg 能解析的)格式. 实例是将上传视频转码为flv格式,该格式ffmpeg支持,所以我们实例中需要ffmpeg视频处理工具. 数据库 实例所需要的数据库脚本 drop database if exists db_mediaplayer;create database db_mediaplayer;use db_mediaplayer; create table tb_media( id int not null primary key auto_increment comment '主键' , title varchar(50) not null comment '视频名称' , src varchar(200) not null comment '视频存放地址' , picture varchar(200) not null comment '视频截图' , descript varchar(400) comment '视频描述' , uptime varchar(40) comment '上传时间' );

在网页中插入视频播放代码全集

在网页中插入视频播放代码全集.txt 2.mpg格式 代码片断如下:

Android视频上传与播放的设计与实现

毕业设计 题目:基于Android的校园信息移动平台的 设计

摘要 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机能够随时随地地查询互联网所提供的服务,一种高效的方法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网络以及互联网访问相关资源信息。因此,智能手机应用软件及其需要的服务将有广阔的发展前景。 本课题为其设计一个基于Android在线学习系统,为用户提供一个可以用于在线播放视频、视频评论和收藏的APP应用,丰富用户娱乐生活,提高生活情趣。 本论文首先介绍系统的开发背景和意义,接着详细介绍系统设计以及实现的过程,最后介绍了系统测试和本软件的测试用例以及总结了本次毕业设计整个过程。 关键词:Android 、智能系统、在线课堂、手机软件

ABSTRACT With the rapid proliferation of smart phones, smart phone operating system market burgeoned. In order to make smart phones can check the Internet anytime, anywhere service provided, an efficient method is to expand the application system functions to the mobile terminal, allowing the phone to access information via the mobile network resources and the Internet. Therefore, smart phone applications and services they need to have broad prospects for development. Based on this study to design an Android video player that can be used to provide users with an online video, video reviews and collections of APP applications, rich user entertainment life, improve zest for life. This paper introduces the background and significance of the development of the system, followed by detailed system design and implementation process, and finally introduced the system testing and test this software and summarizes the whole process of this graduation project. Keywords: Android, intelligent systems, player, mobile phone software

几种在网页中播放FLV视频文件的代码

几种在网页中播放FLV视频文件的代码(附FLV播放器) 方法一、js嵌入 直接copy下面代码,修改其中红色部分,即:swf_width、swf_height、texts、files 参数引用 其中: 群英传WEB版宣传视频是标题。 https://www.360docs.net/doc/0f19406974.html,/flv/qyzweb.flv是FLV文件地址。 https://www.360docs.net/doc/0f19406974.html,/flv/flvplayer.swf 是FLV文件播放器地址(如果你不会制作,可下载别人的然后上传到自己的空间再调用)。

基于Android的视频播放器的设计与实现

基于Android的视频播放器的设计与实现

基于Android的视频播放器的设计与实现 中文摘要 如今,随着基于Android操作系统的智能手机的广泛应用,视频播放器已成为智能手机的一个必不可少的程序,广大用户迫切需要一个贴近用户、方便用户、个性化的视频播放器。因此,设计一个基于android手机的多功能播放器,具有重要的实际意义。 本次毕业设计主要使用JDK + Eclipse + Android-SDK-Windows工具进行开发,使用的编程语言是Java语言。该程序主要由4个不同Activity来实现,每个Activity实现相应的功能模块,能够有效满足Android手机用户在视频播放中的常见需求。 本论文详细介绍了播放器程序的设计思路、设计方案、系统结构和项目工程结构,对系统的可行性与需求性进行了详细的分析,阐述了系统各个模块功能的设计与实现。对程序主要的Activity都进行了详细的介绍和分析,包括对其使用的布局文件的具体介绍,以及各个控件的作用。在最后进行了程序测试,对每一个实现的模块功能都做了测试,并且记录了大量截图用来展示测试结果,以观察程序应有的功能是否正常运行,以及发现程序中可能存在的问题。所开发的程序界面比较友好,操作相对容易,达到设计要求。 关键词:安卓;视频播放;Activity;Mediaplayer

The Design and Implementation of Video Player Based on Android ABSTRACT Now, with the wide application of smart phone based on the Android operating system, video player has become the essential application of smart phone. Most of consumers urgently require a personalized video player which is close to user and facilitate user. Therefore, the design of a multifunctional player based on android mobile phones has an important practical significance. The project design is developed by using JDK, Eclipse, and Android-SDK-Windows tools. The programming language is Java. The program consists of four different Activities and each Activity achieves the corresponding functional modules which can effectively satisfy the common requirements for playing video on Android mobile phones. This paper introduced the design ideas, design scheme, system architecture and project engineering structures of video player. The feasibility and requirements of system were analyzed in detail. The system function and each module were explained. The main Activity of the program are described and analyzed in detail including the using layout file, as well as the role of each control. Finally, I made the test for the program including the functions of each implemented modules. In order to observe whether the program should function properly and find the problems that may exist in the program, many screenshots were saved to demonstrate the test results. The developed program has a friendly interface and can be operated relatively easy, which has achieved the design requirement. KEY WORDS: Android; Video Play; Activity; Mediaplayer

空间播放器代码大全:网页中插入各种格式视频播放代码大全

空间播放器代码大全:网页中插入各种格式视频播放代码大全 疯狂代码 https://www.360docs.net/doc/0f19406974.html,/ ?:http:/https://www.360docs.net/doc/0f19406974.html,/HtmlJiaoCheng/Article19101.html 1.avi格式 代码片断如下: 2.mpg格式 代码片断如下:

android音视频的播放与录制

3G(3rd-generation第三代移动通信技术) 支持高速数据传输 提供移动快带多媒体业务 移动多媒体业务包括: 视频电话 视频会议 音/视频娱乐点播 移动实时监控 Android系统提供了视频录制、存储、播放、传输等功能。 Android系统支持3gp和mp4格式的视频文件 Android多媒体框架是基于第三方PacketVideo公司的OpenCore这个平台实现的 支持所有通用的音频、视频、静态图片格式 Android多媒体框架的核心其实就是Open Core框架 按当日的提供了上层的Media API给开发人员使用 如:MediaPlayer 可以实现音视频的播放和控制 MediaRecorder 可以实现音视频的录制 代码功能:在ListView行点击事件中启动播放视频的Activity(SystemMediaplayerActivity)//给ListView设置行点击事件监听器 getListview().setOnItemjclicklistener(new Onitemclicklistener()){ public void onItemclick(AdapterView parent,View view, int position, long id){ //通过行索引position获取当前的Videoinfo对象 Videoinfo video = videos.get(position); Ingtent intent = new Intent(videoListActivity.this, SystemMediaPlayerActivity.class); //传递视频路径 Intent.putExtra(“path”, video.path); Startactivity(intent); } }); //在SystemMediaPlayerActivity中调用系统播放器 Public class SystemMediaPlayerActivity extends Activity{ Protected void onCreate(Bundle savedInstanceState) Super.onCreate(savedInstanceState); //获取启动该Activity的Intent Intent intent = getIntent(); //获取Intent中传递的视频路径 String path = intent.getStringExtra(“path”); //创建新的意图

网页视频播放器代码

网页视频播放器代码大全网页mtv播放器代码 一. RM格式(无边框按钮)RealPlayer 代码如下:

二. RM格式(带边框按钮)RealPlayer 代码如下:

三. WMV格式(带边框按钮)Windows Media Player 代码如下:

Android视频播放器

目录 0 前言 (1) 1 Android平台 (1) 2 Eclipse (1) 正文 (2) 1 软件介绍 (2) 1.1 软件产品名称 (2) 1.2 软件总体功能 (2) 2 软件开发环境 (2) 3 概要设计 (3) 4 详细设计 (3) 4.1 软件布局 (3) 4.2 播放控制功能 (4) 4.3 其他功能 (5) 5 软件界面及程序主要代码 (6) 5.1 软件在虚拟机上调试及分析 (6) 5.2 程序主要代码 (6) 总结 (10) 参考文献 (10)

1 Android平台 谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 所有的Android应用之间是完全平等的。 所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 2 Eclipse Eclipse的基础是富客户机平台(Rich Client Platform,即RCP)。 RCP包括下列组件: 核心平台(Eclipse,运行插件) 标准集束框架(OSGi :Open Service Gateway initiative) 可移植构件工具包(SWT : Eclipse's Standard Widget Toolkit) JFace(文件缓冲,文本处理,文本编辑器) Eclipse采用的技术是IBM公司开发的SWT,这是一种基于Java的窗口组件,类似Java本身提供的A WT和Swing窗口组件:不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其他所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基于内核包括:图形API(SWT/JFace),Java开发环境插件(JDT),插件开发环境(PDE)等。Eclipse 的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby、Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。 Android程序基础—Android应用程序的构成

视频播放器源码

SoundView.java package com.zh_weir.videoplayer; import com.zh_weir.videoplayer.R; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Rect; import android.media.AudioManager; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; public class SoundView extends View{ public final static String TAG = "SoundView"; private Context mContext; private Bitmap bm , bm1; private int bitmapWidth , bitmapHeight; private int index; private OnVolumeChangedListener mOnVolumeChangedListener; private final static int HEIGHT = 11; public final static int MY_HEIGHT = 163; public final static int MY_WIDTH = 44; public interface OnVolumeChangedListener{ public void setYourVolume(int index); } public void setOnVolumeChangeListener(OnVolumeChangedListener l){ mOnVolumeChangedListener = l; } public SoundView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContext = context; // TODO Auto-generated constructor stub

安卓TV开发(四) 实现主流智能TV视频播放器UI

安卓TV开发(四)实现主流智能TV 视频播放器UI 在FocusView中需要添加一个FocusItemModle 用于填充父布局,这个FocusItemModle 类似grideView中itemview一样,我们可以这么理解,现在我们就定义一个FocusItemModle 类,代码如下: [java] view plain copy print?在CODE上查看代码片派生到我的代码片 public class FocusItemModle { private View mFocusView = null; /** * 起点行数 */ private int mRow = 0; /** * view占据行数 */ private int mRowSpan = 1; /** * 起点列数 */ private int mCol = 0; /** * View占据列数 */ private int mColSpan = 1; /** * @param v * @param row * @param col */ public FocusItemModle(View v, int row, int col) { this(v, row, 1, col, 1); } /** * @param v * @param row * @param rowspan * @param col * @param colspan */ public FocusItemModle(View v, int row, int rowspan, int col, int colspan) {

mFocusView = v; setPosition(row, col); if (rowspan < 1) throw new IllegalArgumentException("rowspan < 1"); mRowSpan = rowspan; if (colspan < 1) throw new IllegalArgumentException("colspan < 1"); mColSpan = colspan; } public View getMetroView() { return mFocusView; } public int getRow() { return mRow; } public int getRowSpan() { return mRowSpan; } public int getCol() { return mCol; } public int getColSpan() { return mColSpan; } public void setPosition(int row, int col) { if (row < 0) throw new IllegalArgumentException("row < 0"); mRow = row; if (col < 0) throw new IllegalArgumentException("col < 0"); mCol = col; } 此item主要控制focusView显示在第几排第几列,用于返回一个itemView显示在

网页视频播放器代码大全

网页视频播放器代码大全 1.avi格式 代码片断如下: 2.mpg格式 代码片断如下:

相关文档
最新文档