首页 android视频播放器-源码

android视频播放器-源码

举报
开通vip

android视频播放器-源码本文讲的是“android 视频播放器”,并附有播放器源代码 1.开发环境: eclipse3.6 ADT-0.9.7 AVD1.6 2.程序运行效果 A.启动AVD(虚拟设备)在应用程序界面主界面,我们可以看到“艾文播放器” B.点击打开后,会播放默认的一个coco的广告 C.点击标题栏的按钮可以打开文件浏览器 D.点击视频文件,会提示使用的播放器 E.选择“艾文视频播放器”打开后,按ctrl+f12,切换到横屏,发现视频并没有中断,而是继续播放 3.源码分析 A.图片都...

android视频播放器-源码
本文讲的是“android 视频播放器”,并附有播放器源代码 1.开发环境: eclipse3.6 ADT-0.9.7 AVD1.6 2.程序运行效果 A.启动AVD(虚拟设备)在应用程序界面主界面,我们可以看到“艾文播放器” B.点击打开后,会播放默认的一个coco的广告 C.点击标题栏的按钮可以打开文件浏览器 D.点击视频文件,会提示使用的播放器 E.选择“艾文视频播放器”打开后,按ctrl+f12,切换到横屏,发现视频并没有中断,而是继续播放 3.源码 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 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 android.net.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_CUSTOM_TITLE);    26.         setContentView(R.layout.main);    27.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//    28.         //设置标题栏的布局    29.         getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.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.getDataString();    46.         videoView = (VideoView) findViewById(R.id.VideoView01);    47.         if(value==null){    48.             //加载默认视频    49.             videoView.setVideoURI(Uri.parse("android.resource://com.bestaone/" + R.drawable.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();    84.         videoView.pause();    85.         //在这里记住视频播放的位置,当屏幕横竖切换的时候可以从记录点继续播放    86.         index = videoView.getCurrentPosition();    87.         Log.i("mp4", "@@@ on stop");    88.     }    89.    90.     //销毁    91.     @Override   92.     protected void onDestroy() {    93.         super.onDestroy();    94.         // videoView.destroyDrawingCache();    95.         index = videoView.getCurrentPosition();    96.         Log.i("mp4", "@@@ on destroy");    97.     }    98.    99. }   MyFile.java view plaincopy to clipboardprint? 1. package com.bestaone;    2.    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 android.net.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.             // {后缀名, MIME类型}    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(path_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(R.layout.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().setOnItemLongClickListener(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(path_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.      * 设置ListItem被点击时要做的动作   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.      * 处理文件或者 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 的方法   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 = fileName.lastIndexOf(".");    143.                     if(index>0){    144.                         String endName = fileName.substring(index,fileName.length()).toLowerCase();    145.                         String type = null;    146.                         for(int x=0; x 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 供选择    176.         String type = "video/*";    177.         if (isOpen == 0) {    178.             type = MyUtil.getMIMEType(f, true);    179.         }    180.         // 设置intent的file与MimeType    181.         intent.setDataAndType(Uri.fromFile(f), type);    182. //      intent.putExtra("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视频播放器-源码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_435706
暂无简介~
格式:doc
大小:56KB
软件:Word
页数:0
分类:
上传时间:2019-08-01
浏览量:32