Есть ли способ использовать дополнительные функции с MediaMetadataCompat из библиотеки поддержки?MediaMetadataCompat Extras
Используя MediaMetadata, я могу установить дополнительные функции, но с совместимым я не могу.
Есть ли способ использовать дополнительные функции с MediaMetadataCompat из библиотеки поддержки?MediaMetadataCompat Extras
Используя MediaMetadata, я могу установить дополнительные функции, но с совместимым я не могу.
Надеюсь, это поможет.
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());
Просьба прочитать описание bounty – ingsaurabh
У меня есть код, скопированный в наш код. Пожалуйста, скажите мне, можете ли вы это понять.
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();
}
Раньше я думал так же, но поскольку треки могут быть краткими, а MediaMetadataCompat не позволяет вставлять массив, Во всяком случае, это также кажется мне MediaMetadataCompat не хватает многих важных полей, таких как тип mime, или может быть, я чего-то не хватает – ingsaurabh
Yeap. Я не полностью помню, но вы правы, MediaMetadataCompat пропускает несколько полей. Нам удалось заставить его работать с помощью JsonObject, сериализованного в одно поле, которое мы не использовали, но я не знаю, работает ли оно на вас. Во всяком случае, это обходное решение, а не стандартное решение. – gonzalomelov
Можете ли вы показать, что вы можете сделать с помощью MediaMetadata и не можете сделать с помощью MediaMetadataCompat? – azizbekian
Я не знаю требований OP, но мой, о котором я упомянул в описании bounty – ingsaurabh