通過MediaStore獲取Audio資訊

2021-07-14 14:01:54 字數 1984 閱讀 4503

mediastore中定義了一系列的資料**,通過contentresolver提供的查詢介面,我們可以得到各種需要的資訊。下面我們重點介紹查詢sd卡上的**檔案資訊。

先來了解一下contentresolver的查詢介面:

cursor query(uri uri, string projection, string selection, string selectionargs, string sortorder);

uri:指明要查詢的資料庫名稱加上表的名稱,從mediastore中我們可以找到相應資訊的引數,具體請參考開發文件。

projection: 指定查詢資料庫表中的哪幾列,返回的游標中將包括相應的資訊。null則返回所有資訊。

selection: 指定查詢條件

selectionargs:引數selection裡有 ?這個符號是,這裡可以以實際值代替這個問號。如果selection這個沒有?的話,那麼這個string陣列可以為null。

sortorder:指定查詢結果的排列順序

下面的命令將返回所有在外部儲存卡上的**檔案的資訊:

cursor cursor = query(mediastore.audio.media.external_content_uri, null, null, null, mediastore.audio.media.default_sort_order);

得到cursor後,我們可以呼叫cursor的相關方法具體的**資訊:

歌曲id:mediastore.audio.media._id

int id = cursor.getint(cursor.getcolumnindexorthrow(mediastore.audio.media._id));

歌曲的名稱 :mediastore.audio.media.titl

string tilte = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.title));

歌曲的**名:mediastore.audio.media.album

string album = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.album));

歌曲的歌手名: mediastore.audio.media.artist

string artist = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.artist));

歌曲檔案的全路徑 :mediastore.audio.media.data

string url = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.data));

歌曲檔案的名稱:mediastroe.audio.media.display_name

string display_name = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.display_name));

歌曲檔案的發行日期:mediastore.audio.media.year

string year = cursor.getstring(cursor.getcolumnindexorthrow(mediastore.audio.media.year));

int duration = cursor.getint(cursor.getcolumnindexorthrow(mediastore.audio.media.duration));

歌曲檔案的大小 :mediastore.audio.media.size

int size = cursor.getlong(cursor.getcolumnindexorthrow(mediastore.audio.media.size));

**:

MediaStore用法示例

mediastore類向儲存在裝置上 無論是內部儲存器還是外部儲存器中 的 提供了一介面。mediastore還提供了api來操作 mediastore便於簡化操作。下面是使用intent來錄製音訊和拍照的簡單示例。public class mediastoretest extends activi...

通過environment獲取sdcard目錄

在研究拍照後突破的儲存路徑的問題,開始儲存路徑寫死為 private string folder sdcard dcim camera sd卡上拍照程式的儲存路徑 後來發現這樣寫雖然一般不會出錯,但不是很好,因為不同相機,可能路徑會出問題。較好的方法是通過environment 來獲取路徑,最後給出...

通過Spring獲取properties檔案屬性值

spring提供了註解 value,用於在程式中獲取properties配置檔案屬性值。例如 當有多個配置檔案時,上述配置可以配置多條。2.spring bean中使用 value註解獲取指定引數。properties配置項 server.ip 192.168.1.1 server.port 808...