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

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -