简易视频播放器

比较不错的源码:

倒计时的实现方案 - 类似限时抢购商品等
http://www.eoeandroid.com/thread-231924-1-1.html

android 仿IPHONE桌面图标抖动
http://www.eoeandroid.com/thread-231330-1-1.html

Android中如何使用ViewPager实现类似laucher左右拖动效果
http://www.eoeandroid.com/thread-231368-1-1.html

eoe积分商城:

http://www.eoeandroid.com/plugin.php?id=auction

-----------------帖子正文-------------------------

为了熟悉android视频方面的api,结合论坛里的资料,动手写了一个调用系统API的视频播放器,只能播放系统自带能解码的格式,界面比较简单,如下图:

代码主要有两个部分:

1.搜索手机中所有视频并显示

  主要通过以下代码实现:

复制代码
cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);  
           
        
           
        if(cursor.moveToFirst()){  
            do{  
                VideoInfo info = new VideoInfo();  
                   
                info.filePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));  
                info.mimeType = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));  
                info.title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));  
                   
                Log.d("-name debug-", info.title+"    "+info.filePath);
                 
                //获取当前Video对应的Id,然后根据该ID获取其Thumb  
                int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));  
                BitmapFactory.Options options = new BitmapFactory.Options();  
                options.inDither = false;  
                options.inPreferredConfig = Bitmap.Config.ARGB_8888;  
                info.b = MediaStore.Video.Thumbnails.getThumbnail(getContentResolver(), id,  Images.Thumbnails.MICRO_KIND, options);                  
                   
                //然后将其加入到videoList  
                videoList.add(info);  
                   
            }while(cursor.moveToNext());  
        }  
复制代码

2.播放视频

通过videoview实现

复制代码
protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.player);
        viv=(VideoView)findViewById(R.id.videoView);
        mController=new MediaController(this);
        viv.setMediaController(mController);
        String videopath=getIntent().getStringExtra("path");
        if (videopath!=null) 
        {
                viv.setVideoPath(videopath);
        }
        viv.requestFocus();
        viv.start();
        }
复制代码


源码下载

 

posted on   vus520  阅读(342)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

< 2012年11月 >
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示