List of usage examples for android.support.v4.media MediaMetadataCompat METADATA_KEY_GENRE
String METADATA_KEY_GENRE
To view the source code for android.support.v4.media MediaMetadataCompat METADATA_KEY_GENRE.
Click Source Link
From source file:com.bayapps.android.robophish.utils.SimpleMusicProviderSource.java
public void add(String title, String album, String artist, String genre, String source, String iconUrl, long trackNumber, long totalTrackCount, long durationMs) { String id = String.valueOf(source.hashCode()); //noinspection ResourceType mData.add(new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, durationMs) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount).build()); }
From source file:com.scooter1556.sms.lib.android.utils.MediaUtils.java
public static MediaMetadataCompat getMediaMetadata(MediaElement mediaElement, Bitmap artwork) { if (mediaElement == null) { return null; }//from www . j a va 2 s.c o m // Update session metadata MediaMetadataCompat.Builder metadata = new MediaMetadataCompat.Builder(); metadata.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, mediaElement.getID().toString()); if (mediaElement.getArtist() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, mediaElement.getArtist()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, mediaElement.getArtist()); } if (mediaElement.getAlbum() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, mediaElement.getAlbum()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION, mediaElement.getAlbum()); } if (mediaElement.getTitle() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_TITLE, mediaElement.getTitle()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, mediaElement.getTitle()); } if (mediaElement.getDuration() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, mediaElement.getDuration() * 1000); } if (mediaElement.getYear() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_YEAR, mediaElement.getYear()); } if (mediaElement.getGenre() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_GENRE, mediaElement.getGenre()); } if (mediaElement.getTrackNumber() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, mediaElement.getTrackNumber()); } if (mediaElement.getDiscNumber() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_DISC_NUMBER, mediaElement.getDiscNumber()); } if (mediaElement.getAlbumArtist() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, mediaElement.getAlbumArtist()); } if (artwork != null) { metadata.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, artwork); metadata.putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, artwork); metadata.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, artwork); } return metadata.build(); }
From source file:com.example.android.uamp.model.ExternalStorageSource.java
@Override public Iterator<MediaMetadataCompat> iterator() { ArrayList<MediaMetadataCompat> tracks = new ArrayList<>(); Cursor cursor;//from w w w .ja va 2 s . c o m Uri euri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; // String[] projection = {MediaStore.Audio.Media._ID, // MediaStore.Audio.Media.DISPLAY_NAME, // MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE}; String selection = MediaStore.Audio.Media.IS_MUSIC + "!=" + 0; cursor = mContentResolver.query(euri, null, selection, null, MediaStore.Audio.Media.TITLE + " ASC"); // retrieve the indices of the columns where the ID, title, etc. of the song are int artistColumn = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST); int titleColumn = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE); int albumColumn = cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM); int durationColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DURATION); int idColumn = cursor.getColumnIndex(MediaStore.Audio.Media._ID); int dataColumn = cursor.getColumnIndex(MediaStore.Audio.Media.DATA); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { tracks.add(new MediaMetadataCompat.Builder() .putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, cursor.getString(idColumn)) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, cursor.getString(dataColumn)) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, cursor.getString(albumColumn)) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, cursor.getString(artistColumn)) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, cursor.getLong(durationColumn)) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, "Pop") .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, "") .putString(MediaMetadataCompat.METADATA_KEY_TITLE, cursor.getString(titleColumn)) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, 2) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, 2).build()); } return tracks.iterator(); }
From source file:com.pi.android.brainbeats.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromStorage(Cursor cur, ContentResolver cr) throws JSONException { String source = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media.DATA)); String title = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)); String album = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media.ALBUM)); String artist = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media.ARTIST)); String id = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media._ID)); String iconUrl = getAlbumArt(cr, cur.getInt(cur.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID))); String genre = "unknown"; int duration = cur.getInt(cur.getColumnIndex(MediaStore.Audio.Media.DURATION)) * 1000; //ms return new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) //? .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title).build(); }
From source file:rocks.stalin.android.app.model.ExternalStorageSource.java
@Override public Iterator<MediaMetadataCompat> iterator() { ArrayList<MediaMetadataCompat> tracks = new ArrayList<>(); if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { try {/* w w w . j a va2 s . c om*/ Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; Cursor musicCursor = mContentResolver.query(musicUri, null, null, null, null); if (musicCursor != null && musicCursor.moveToFirst()) { int titleColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.TITLE); int idColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media._ID); int artistColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST); int albumColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM); int durationColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.DURATION); int isMusicColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC); do { LogHelper.d(TAG, "i'm in da do"); if (musicCursor.getInt(isMusicColumn) != 0) { tracks.add(new MediaMetadataCompat.Builder() .putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, musicCursor.getString(idColumn)) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, musicCursor.getString(titleColumn)) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, musicCursor.getString(artistColumn)) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, musicCursor.getString(albumColumn)) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, "https://raw.githubusercontent.com/sw8f17/logo/master/scotty.png") .putString(MediaMetadataCompat.METADATA_KEY_GENRE, "Unknown") .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, musicCursor.getLong(durationColumn)) .build()); } } while (musicCursor.moveToNext()); musicCursor.close(); } } catch (Exception e) { LogHelper.e(TAG, e, "Could not retrieve music list"); throw new RuntimeException("Could not retrieve music list", e); } } else { PermissionHelper.addMissingPermission(Manifest.permission.READ_EXTERNAL_STORAGE); } return tracks.iterator(); }
From source file:com.phearom.um.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromJSON(JSONObject json, String basePath) throws JSONException { String title = json.getString(JSON_TITLE); String album = json.getString(JSON_ALBUM); String artist = json.getString(JSON_ARTIST); String genre = json.getString(JSON_GENRE); String source = json.getString(JSON_SOURCE); String iconUrl = json.getString(JSON_IMAGE); // try { // MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever(); // metaRetriever.setDataSource(source); // String time = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); ////from ww w . ja v a 2s.co m // Log.i("Duration",time); // // duration = Long.valueOf(time); // } catch (Exception e) { // e.printStackTrace(); // } LogHelper.d(TAG, "Found music track: ", json); // Media is stored relative to JSON file if (!source.startsWith("http")) { source = basePath + source; } if (!iconUrl.startsWith("http")) { iconUrl = basePath + iconUrl; } String id = String.valueOf(source.hashCode()); //noinspection ResourceType return new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title).build(); }
From source file:com.classiqo.nativeandroid_32bitz.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromJSON(JSONObject json/*, String basePath*/) throws JSONException { String title = json.getString(JSON_TITLE); String album = json.getString(JSON_ALBUM); String artist = json.getString(JSON_ARTIST); String genre = json.getString(JSON_GENRE); String source = json.getString(JSON_SOURCE); String iconUrl = json.getString(JSON_IMAGE); int trackNumber = json.getInt(JSON_TRACK_NUMBER); int totalTrackCount = json.getInt(JSON_TOTAL_TRACK_COUNT); int duration = json.getInt(JSON_DURATION) * 1000; String site = json.getString(JSON_SITE); LogHelper.d(TAG, "Found music track", json); if (!source.startsWith("http")) { // source = basePath + source; source = site + JSON_S3_BUCKET + "/" + JSON_MUSIC + "/" + artist + "/" + source; }/*from ww w. j av a2s .c o m*/ if (!iconUrl.startsWith("http")) { // source = basePath + iconUrl; iconUrl = site + JSON_S3_BUCKET + "/" + JSON_MUSIC + "/" + artist + "/" + album + ".jpg"; } LogHelper.i(TAG, source); LogHelper.i(TAG, iconUrl); String id = String.valueOf(source.hashCode()); //noinspection ResourceType return new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount).build(); }
From source file:com.example.android.uamp.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromJSON(JSONObject json, String basePath) throws JSONException { String title = json.getString(JSON_TITLE); String album = json.getString(JSON_ALBUM); String artist = json.getString(JSON_ARTIST); String genre = json.getString(JSON_GENRE); String source = json.getString(JSON_SOURCE); String iconUrl = json.getString(JSON_IMAGE); int trackNumber = json.getInt(JSON_TRACK_NUMBER); int totalTrackCount = json.getInt(JSON_TOTAL_TRACK_COUNT); int duration = json.getInt(JSON_DURATION) * 1000; // ms LogHelper.d(TAG, "Found music track: ", json); // Media is stored relative to JSON file if (!source.startsWith("http")) { source = basePath + source;//from w w w . j ava 2 s . c o m } if (!iconUrl.startsWith("http")) { iconUrl = basePath + iconUrl; } // Since we don't have a unique ID in the server, we fake one using the hashcode of // the music source. In a real world app, this could come from the server. String id = String.valueOf(source.hashCode()); // Adding the music source to the MediaMetadata (and consequently using it in the // mediaSession.setMetadata) is not a good idea for a real world music app, because // the session metadata can be accessed by notification listeners. This is done in this // sample for convenience only. //noinspection ResourceType return new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount).build(); }
From source file:dk.glutter.android.dansker.uamp.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromJSON(JSONObject json, String basePath) throws JSONException { String title = json.getString(JSON_TITLE); String album = json.getString(JSON_ALBUM); String artist = json.getString(JSON_ARTIST); String genre = json.getString(JSON_GENRE); String source = json.getString(JSON_SOURCE); String iconUrl = json.getString(JSON_IMAGE); int trackNumber = json.getInt(JSON_TRACK_NUMBER); int totalTrackCount = json.getInt(JSON_TOTAL_TRACK_COUNT); int duration = json.getInt(JSON_DURATION) * 1000; // ms LogHelper.d(TAG, "Found music track: ", json); // Media is stored relative to JSON file if (!source.startsWith("http")) { source = basePath + source;/*from w w w. j av a 2 s.c o m*/ } if (!iconUrl.startsWith("http")) { iconUrl = "http://denstoredanske.dk/@api/deki/files/70689/=dannebrog.jpg"; } // Since we don't have a unique ID in the server, we fake one using the hashcode of // the music source. In a real world app, this could come from the server. String id = String.valueOf(source.hashCode()); // Adding the music source to the MediaMetadata (and consequently using it in the // mediaSession.setMetadata) is not a good idea for a real world music app, because // the session metadata can be accessed by notification listeners. This is done in this // sample for convenience only. //noinspection ResourceType return new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount).build(); }
From source file:com.example.hp.smartstor.CloudMusicManager.uamp.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromJSON(JSONObject json, String basePath) throws JSONException { String title = json.getString(JSON_TITLE); String alb = json.getString(JSON_ALBUM); alb = alb.replace(" ", "%20"); String album = alb;//from ww w . j a v a 2 s .c o m Log.i("album after edit", alb); String artist = json.getString(JSON_ARTIST); String genre = json.getString(JSON_GENRE); String src = json.getString(JSON_SOURCE); src = src.replace(" ", "%20"); String source = src; String iconUrl = json.getString(JSON_IMAGE); int trackNumber = json.getInt(JSON_TRACK_NUMBER); int totalTrackCount = json.getInt(JSON_TOTAL_TRACK_COUNT); int duration = json.getInt(JSON_DURATION) * 1000; // ms LogHelper.d(TAG, "Found music track: ", json); // Media is stored relative to JSON file if (!source.startsWith("http")) { source = basePath + source; } if (!iconUrl.startsWith("http")) { iconUrl = basePath + iconUrl; } // Since we don't have a unique ID in the server, we fake one using the hashcode of // the music source. In a real world app, this could come from the server. String id = String.valueOf(source.hashCode()); // Adding the music source to the MediaMetadata (and consequently using it in the // mediaSession.setMetadata) is not a good idea for a real world music app, because // the session metadata can be accessed by notification listeners. This is done in this // sample for convenience only. //noinspection ResourceType return new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount).build(); }