Example usage for android.support.v4.media MediaMetadataCompat METADATA_KEY_ALBUM_ART_URI

List of usage examples for android.support.v4.media MediaMetadataCompat METADATA_KEY_ALBUM_ART_URI

Introduction

In this page you can find the example usage for android.support.v4.media MediaMetadataCompat METADATA_KEY_ALBUM_ART_URI.

Prototype

String METADATA_KEY_ALBUM_ART_URI

To view the source code for android.support.v4.media MediaMetadataCompat METADATA_KEY_ALBUM_ART_URI.

Click Source Link

Document

The artwork for the album of the media's original source as a Uri style String.

Usage

From source file:com.ubimobitech.spotifystreamer.model.MusicProvider.java

public static MediaMetadataCompat buildFromTrack(Track track) {
    if (track != null) {
        return new MediaMetadataCompat.Builder().putString(CUSTOM_METADATA_TRACK_PREVIEW_URL, track.preview_url)
                .putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, track.id)
                .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, track.album.name)
                .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, track.artists.get(0).name)
                .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, track.duration_ms)
                .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, track.album.images.get(0).url)
                .putString(MediaMetadataCompat.METADATA_KEY_TITLE, track.name)
                .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, track.track_number).build();
    }//  w  w  w  .j a  v a 2 s .  c  o  m

    return null;
}

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.example.android.uamp.model.ExternalStorageSource.java

@Override
public Iterator<MediaMetadataCompat> iterator() {

    ArrayList<MediaMetadataCompat> tracks = new ArrayList<>();
    Cursor cursor;//from  w  w  w  .  j ava  2  s.c  om
    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: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 {//from w ww  . j a v  a  2  s.  c o  m
            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.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:nuclei.media.MediaProvider.java

public Result<MediaMetadata> getMediaMetadata(final MediaId id) {
    return Tasks.execute(new Task<MediaMetadata>() {
        @Override//from  w  w w. j  a v a2  s. c  om
        public String getId() {
            return "get-media-metadata";
        }

        @Override
        public void run(Context context) {
            MediaMetadata metadata = getMediaMetadataSync(id);
            onComplete(metadata);
        }
    }).addCallback(new Result.CallbackAdapter<MediaMetadata>() {
        @Override
        public void onResult(final MediaMetadata mediaMetadata) {
            if (mediaMetadata != null) {
                mMetadataCache.put(id.toString(), mediaMetadata);

                final String url = mediaMetadata.getString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI);
                AlbumArtCache.getInstance().fetch(CONTEXT, url, new AlbumArtCache.FetchListener() {
                    @Override
                    public void onFetchedImage(String artUrl, Bitmap image) {
                        mediaMetadata.setAlbumArt(image);
                    }

                    @Override
                    public void onFetchedIcon(String artUrl, Bitmap icon) {
                        mediaMetadata.setDisplayIcon(icon);
                    }
                });
            }
        }
    });
}

From source file:com.doctoror.fuckoffmusicplayer.data.reporter.MediaSessionPlaybackReporter.java

@Override
public void reportTrackChanged(@NonNull final Media media) {
    final Uri data = media.getData();
    final MediaMetadataCompat.Builder b = new MediaMetadataCompat.Builder()
            .putText(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, Long.toString(media.getId()))
            .putText(MediaMetadataCompat.METADATA_KEY_MEDIA_URI, data != null ? data.toString() : null)
            .putText(MediaMetadataCompat.METADATA_KEY_TITLE, media.getTitle())
            .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, media.getDuration())
            .putText(MediaMetadataCompat.METADATA_KEY_ARTIST, media.getArtist())
            .putText(MediaMetadataCompat.METADATA_KEY_ALBUM, media.getAlbum())
            .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, media.getTrack());

    final String art = media.getAlbumArt();
    Bitmap artBitmapSmall = null;//from   w  w w. jav a2 s.c  o  m
    if (!TextUtils.isEmpty(art)) {
        Bitmap artBitmapLarge = null;
        // Load bitmap because of https://code.google.com/p/android/issues/detail?id=194874
        try {
            //noinspection SuspiciousNameCombination
            artBitmapLarge = mGlide.asBitmap().apply(requestOptions).load(art)
                    // Optimized for lock screen
                    .submit(mDisplayMetrics.widthPixels, mDisplayMetrics.heightPixels).get();
        } catch (ExecutionException | InterruptedException e) {
            Log.w(TAG, "Failed loading art image", e);
        }
        // Small bitmap for app widget, if any
        final int dp84 = (int) (84f * mDisplayMetrics.density);

        try {
            artBitmapSmall = mGlide.asBitmap().apply(requestOptions).load(art)
                    // Optimized for medium appwidget
                    .submit(dp84, dp84).get();
        } catch (ExecutionException | InterruptedException e) {
            Log.w(TAG, "Failed loading art image", e);
        }
        if (artBitmapLarge != null) {
            b.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, artBitmapLarge);
        }
        b.putText(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI,
                new File(media.getAlbumArt()).toURI().toString());
    }

    mAlbumThumbHolder.setAlbumThumb(artBitmapSmall);
    mMediaSession.setMetadata(b.build());
}

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  w ww.j a  v  a 2s  . c  o 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;
    }/* w  w w.j a  v a2 s .  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 .ja v a 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();
}