android - Retrieving Media from a Content Resolver -
i new in android programming. trying figure out how use code this
contentresolver contentresolver = getcontentresolver(); uri uri = android.provider.mediastore.audio.media.external_content_uri; cursor cursor = contentresolver.query(uri, null, null, null, null); if (cursor == null) { // query failed, handle error. } else if (!cursor.movetofirst()) { // no media on device } else { int titlecolumn = cursor.getcolumnindex(android.provider.mediastore.audio.media.title); int idcolumn = cursor.getcolumnindex(android.provider.mediastore.audio.media._id); { long thisid = cursor.getlong(idcolumn); string thistitle = cursor.getstring(titlecolumn); // ...process entry... } while (cursor.movetonext()); }
i not sure how process entry or other block of code give out.
long id = /* retrieve somewhere */; uri contenturi = contenturis.withappendedid( android.provider.mediastore.audio.media.external_content_uri, id); mmediaplayer = new mediaplayer(); mmediaplayer.setaudiostreamtype(audiomanager.stream_music); mmediaplayer.setdatasource(getapplicationcontext(), contenturi); // ...prepare , start...
can 1 tell me how works , how retrive data.
i late hope here nice example of how use content provider retrieve data using content provider
import android.content.contentresolver; import android.content.contenturis; import android.database.cursor; import android.net.uri; import android.provider.mediastore; import android.util.log; import java.util.arraylist; import java.util.list; import java.util.random; public class musicretriever { final string tag = "musicretriever"; contentresolver mcontentresolver; // items (songs) have queried list<item> mitems = new arraylist<item>(); random mrandom = new random(); public musicretriever(contentresolver cr) { mcontentresolver = cr; } /** * loads music data. method may take long, sure call asynchronously without * blocking main thread. */ public void prepare() { uri uri = android.provider.mediastore.audio.media.external_content_uri; log.i(tag, "querying media..."); log.i(tag, "uri: " + uri.tostring()); // perform query on content resolver. uri we're passing specifies // want query audio media on external storage (e.g. sd card) cursor cur = mcontentresolver.query(uri, null, mediastore.audio.media.is_music + " = 1", null, null); log.i(tag, "query finished. " + (cur == null ? "returned null." : "returned cursor.")); if (cur == null) { // query failed... log.e(tag, "failed retrieve music: cursor null :-("); return; } if (!cur.movetofirst()) { // nothing query. there no music on device. how boring. log.e(tag, "failed move cursor first row (no query results)."); return; } log.i(tag, "listing..."); // retrieve indices of columns id, title, etc. of song int artistcolumn = cur.getcolumnindex(mediastore.audio.media.artist); int titlecolumn = cur.getcolumnindex(mediastore.audio.media.title); int albumcolumn = cur.getcolumnindex(mediastore.audio.media.album); int durationcolumn = cur.getcolumnindex(mediastore.audio.media.duration); int idcolumn = cur.getcolumnindex(mediastore.audio.media._id); log.i(tag, "title column index: " + string.valueof(titlecolumn)); log.i(tag, "id column index: " + string.valueof(titlecolumn)); // add each song mitems { log.i(tag, "id: " + cur.getstring(idcolumn) + " title: " + cur.getstring(titlecolumn)); mitems.add(new item( cur.getlong(idcolumn), cur.getstring(artistcolumn), cur.getstring(titlecolumn), cur.getstring(albumcolumn), cur.getlong(durationcolumn))); } while (cur.movetonext()); log.i(tag, "done querying media. musicretriever ready."); } public contentresolver getcontentresolver() { return mcontentresolver; } /** returns random item. if there no items available, returns null. */ public item getrandomitem() { if (mitems.size() <= 0) return null; return mitems.get(mrandom.nextint(mitems.size())); } public static class item { long id; string artist; string title; string album; long duration; public item(long id, string artist, string title, string album, long duration) { this.id = id; this.artist = artist; this.title = title; this.album = album; this.duration = duration; } public long getid() { return id; } public string getartist() { return artist; } public string gettitle() { return title; } public string getalbum() { return album; } public long getduration() { return duration; } public uri geturi() { return contenturis.withappendedid( android.provider.mediastore.audio.media.external_content_uri, id); } }
hope you
Comments
Post a Comment