84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
最近在学习安卓开发,有一些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... 這個教學不錯