最近在学习安卓开发,有一些JAVA基础,想做一个简单的视频播放器,现在卡到了获取视频文件路径这一点上,现在已经会用Mediaplay,video等控件,但是只能每一次在AS中输入程序路径,想能够在程序上去获取本地所有视频路径,然后可以选择播放,可是网上查了很多,很多代码也运行不起也看的不是很懂,所以希望大家能给一个思路,我好在去学习。这个查了快一点了,也没有解决!谢谢大家
业精于勤,荒于嬉;行成于思,毁于随。
两种方式
1、简单点的,调用系统中的文件选择器来帮你找寻你需要的文件,把路径返回给你,代码量小也很容易,简单如下:
private void pickFile() { Intent intent = new Intent(); //意图类型过滤,指定视频类型文件 intent.setType("video/*"); //意图动作,选取内容 intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, 0x01); } . . . @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 0x01 && resultCode == RESULT_OK) { Uri uri = data.getData(); Cursor cursor = getContentResolver().query(uri, null, null, null, null); cursor.moveToFirst(); //获取文件路径 String path = cursor.getString(1); } }
2、自己实现文件管理器,通过扫描系统存储器上的文件,来筛选你需要的文件类型,那就复杂一点了,涉及到ContentResolver,Uri,Cursor,MediaStore,MimeType,Intent等这几大块的知识点,复杂麻烦是肯定的,要做好一个东西就不要怕麻烦,去啃。
ContentResolver,Uri,Cursor,MediaStore,MimeType,Intent
第一种方式让你知其然,第二种方式让你知其所以然。
把“望”字写对,不是“忘”。
第二种方式,给你这些参考,自己照着去实现一遍,也就差不多了。
首先解决你的一点疑惑,如何获取本地所有视频路径。Android系统在存储视频,音频,图片等资源的时候,会自动把其相关信息存储在数据库中,信息包括名字,大小,存储路径等。假如我们播放某一视频文件,从数据库中获取其存储路径,然后通过路径获取视频本身。那么你需要做以下几件事:1、了解存储Android视频信息数据库的名称,字段2、了解获取Android获取数据库中数据的方法,Android已经封装好的看下扫描所有Video信息的代码,随手搜的,不确保是对的哈,给你注释下。
private void scanVideoUri(){ //通过ContentResolver从数据库获取信息,Curse是获取的结果 Cursor cursor = mContext.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null, null); int totalCount =cursor.getCount();//计算所有结果的条数 cursor.moveToFirst();//此句一定要有 //遍历所有的Video信息 for( int i = 0;i < totalCount;i++){ String data = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA)); String data1 = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA)); String title = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.TITLE)); String type = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.MIME_TYPE)); int id = cursor.getInt(cursor.getColumnIndex(MediaStore.Video.Media._ID)); Log.e(TAG, data+title+type); cursor.moveToNext();//访问下一个 } }
代码看不懂很正常,把目标分解,然后拼接就会得到最后的结果。
读取系统数据库,所有在你手机视频列表里面可以看到的视频,都可以直接查找出来。具体实现可以问下度娘~
http://blog.csdn.net/github_3... 这个教程不错
两种方式
1、简单点的,调用系统中的文件选择器来帮你找寻你需要的文件,把路径返回给你,代码量小也很容易,简单如下:
2、自己实现文件管理器,通过扫描系统存储器上的文件,来筛选你需要的文件类型,那就复杂一点了,涉及到
ContentResolver,Uri,Cursor,MediaStore,MimeType,Intent
等这几大块的知识点,复杂麻烦是肯定的,要做好一个东西就不要怕麻烦,去啃。第一种方式让你知其然,第二种方式让你知其所以然。
把“望”字写对,不是“忘”。
第二种方式,给你这些参考,自己照着去实现一遍,也就差不多了。
首先解决你的一点疑惑,如何获取本地所有视频路径。Android系统在存储视频,音频,图片等资源的时候,会自动把其相关信息存储在数据库中,信息包括名字,大小,存储路径等。假如我们播放某一视频文件,从数据库中获取其存储路径,然后通过路径获取视频本身。那么你需要做以下几件事:
1、了解存储Android视频信息数据库的名称,字段
2、了解获取Android获取数据库中数据的方法,Android已经封装好的
看下扫描所有Video信息的代码,随手搜的,不确保是对的哈,给你注释下。
代码看不懂很正常,把目标分解,然后拼接就会得到最后的结果。
读取系统数据库,所有在你手机视频列表里面可以看到的视频,都可以直接查找出来。具体实现可以问下度娘~
http://blog.csdn.net/github_3... 这个教程不错