標籤:
1.Android中所有的多媒體檔案除了儲存在物理硬碟上,還會將檔案資訊(路徑、id、類型、)儲存到資料庫中,這樣當我們想要擷取這些檔案的資訊時,就不需要耗時的掃描硬碟,只需要讀資料庫就可以了。Android平台中稱手機終端記憶體為內部儲存空間,稱SD卡為外部儲存空間。針對內部和外部儲存空間中的媒體檔案資訊是分開管理的,各自有獨立的資料庫管理。外部儲存空間和內部儲存空間對應的卷標為”external”和”internal”。2.資料庫的資料都會由相應的內容提供者暴露出來,根據預先定義的URI,可以輕鬆擷取這些資料3.安卓有一個服務專門用於將檔案資訊掃描添加到資料庫中,該服務開機自啟動(監聽了開機廣播),也可以由開發人員在特定的時機主動發送廣播更新資料庫的資訊,比如剛剛儲存了一張圖片希望立刻在圖庫中看到。
下面代碼示範如何擷取手機視頻檔案的一些資料
ContentResolver contentResolver=context.getContentResolver(); Uri uri= MediaStore.Video.Media.EXTERNAL_CONTENT_URI; String[] projection={ MediaStore.Video.Media.DISPLAY_NAME,//視頻在sd卡中的名稱 MediaStore.Video.Media.DURATION,//視頻時間長度 MediaStore.Video.Media.SIZE,//視頻檔案的大小 MediaStore.Video.Media.DATA,//視頻的絕對路徑 MediaStore.Video.Media.ARTIST//藝術家 }; Cursor cursor=contentResolver.query(uri,projection,null,null,null);
遍曆cursor即可擷取手機視頻檔案的資料
如果要擷取音頻檔案,用MediaStore.Audio.Media.EXTERNAL_CONTENT_URI
如果要擷取圖片檔案,用MediaStore.Images.Media.EXTERNAL_CONTENT_URI
安卓擷取多媒體(包括 視頻、音頻、圖片)資料