84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
最近在学习安卓开发,有一些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... 这个教程不错