C'è un modo per utilizzare extra con MediaMetadataCompat dalla libreria di supporto?MediaMetadataCompat Extras
Utilizzando MediaMetadata posso impostare degli extra, ma con il compat non posso.
C'è un modo per utilizzare extra con MediaMetadataCompat dalla libreria di supporto?MediaMetadataCompat Extras
Utilizzando MediaMetadata posso impostare degli extra, ma con il compat non posso.
Spero che aiuti.
import android.support.v4.media.session.MediaSessionCompat;
private MediaSessionCompat mMediaSession;
//init mediasesson
mMediaSession = new MediaSessionCompat(getApplicationContext(), "AudioPlayer",new ComponentName(this, HeadsetNotificationBroadcast.class), null);
//set the metadata
mMediaSession.setMetadata(new MediaMetadataCompat.Builder()
.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, getSongDataHelper().getAlbumArt())
.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, getSongDataHelper().getArtist())
.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, getSongDataHelper().getAlbum())
.putString(MediaMetadataCompat.METADATA_KEY_TITLE, getSongDataHelper().getTitle())
.build());
Leggere attentamente la descrizione della taglia – ingsaurabh
Ho copiato il nostro codice. Per favore dimmi se riesci a capirlo.
private static MediaInfo toCastMediaMetadata(MediaMetadataCompat track, JSONObject customData) {
MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MUSIC_TRACK);
mediaMetadata.putString(MediaMetadata.KEY_TITLE, track.getDescription().getTitle().toString());
mediaMetadata.putString(MediaMetadata.KEY_SUBTITLE, track.getDescription().getSubtitle().toString());
mediaMetadata.putString(MediaMetadata.KEY_ALBUM_ARTIST, track.getString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST));
mediaMetadata.putString(MediaMetadata.KEY_ALBUM_TITLE, track.getString(MediaMetadataCompat.METADATA_KEY_ALBUM));
WebImage image = new WebImage(new Uri.Builder().encodedPath(track.getString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI)).build());
// First image is used by the receiver for showing the audio album art.
mediaMetadata.addImage(image);
// Second image is used by Cast Companion Library on the full screen activity that is shown
// when the cast dialog is clicked.
mediaMetadata.addImage(image);
return new MediaInfo.Builder(
track.getDescription().getExtras().getString(MutableMediaMetadataCompat.
METADATA_KEY_TRACK_SOURCE)).setContentType(
MIME_TYPE_AUDIO_MPEG).setStreamType(MediaInfo.STREAM_TYPE_BUFFERED).setMetadata(mediaMetadata).setCustomData(customData).build();
}
In precedenza ho pensato allo stesso modo, ma poiché le tracce possono essere multiple e MediaMetadataCompat non consente l'inserimento di array, così può essere usato in tutti i casi, anche a me sembra che MediaMetadataCompat manchi di molti campi importanti come il tipo MIME o potrebbe essere mi manca qualcosa – ingsaurabh
Yeap. Non ricordo completamente ma hai ragione, MediaMetadataCompat manca di diversi campi. Siamo riusciti a farlo funzionare utilizzando un oggetto JsonObject serializzato in un campo che non è stato utilizzato ma non so se funzioni per te. Ad ogni modo, è una soluzione alternativa e non una soluzione standard. – gonzalomelov
Potete mostrare cosa si può fare con 'MediaMetadata' e non si può fare con' MediaMetadataCompat'? – azizbekian
Non conosco i requisiti dell'OP, ma il mio l'ho menzionato nella descrizione della taglia – ingsaurabh