Приложение Android Auto не вызывает onPlay, и обложки альбомов не отображаются.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Приложение Android Auto не вызывает onPlay, и обложки альбомов не отображаются.

Сообщение Anonymous »

Я написал mp3-плеер (под названием DJ) и хочу добавить совместимость с Android Auto. Я написал службу, и все работает, за исключением того, что на головном устройстве рабочего стола Windows не отображается обложка альбома и не воспроизводится звук (даже не вызывает onPlay). При нажатии на песню в головном устройстве появляется сообщение "Getting your choice..." - и вроде бы зависает там. Должна ли быть кнопка воспроизведения?
Изображение

[img]https://i.sstatic. net/WiDtprGw.png[/img]

Песни находятся в ArrayList под названием songItemList. Вот код, создающий MediaItems. Я подтверждаю, что файл обложки альбома существует, затем выполняю Uri.parse на пути к файлу. Я также попробовал fromFile с тем же результатом. Я делаю то же самое для файла mp3. Должно быть, я что-то упускаю.

Код: Выделить всё

for (SongItem songItem:songItemList) {
String id = SONG + "_" + songItem.getTrackid();
Uri uri = null;
Uri mediaUri = null;
if (songItem.getArtLocation() != null) {
File f = new File(songItem.getArtLocation());
if (f.exists()) {
//uri = Uri.fromFile(f);
uri = Uri.parse(songItem.getArtLocation());
} else {
Log.d(TAG,"File doesn't exist:" + songItem.getArtLocation());
}
f = new File(songItem.getLocation());
if (f.exists()) {
//mediaUri = Uri.fromFile(f);
mediaUri = Uri.parse(songItem.getLocation());
} else {
Log.d(TAG, "File doesn't exist: " + songItem.getLocation());
}
}
Bundle extras = new Bundle();
MediaBrowserCompat.MediaItem item =
new MediaBrowserCompat.MediaItem(descBuilder.setMediaId(id)
.setDescription(songItem.getName())
.setSubtitle(songItem.getArtist())
.setIconUri(uri)
.setMediaUri(mediaUri)
.setMediaId(id)
.setTitle(songItem.getName())
.setExtras(extras)
.build(),MediaBrowserCompat.MediaItem.FLAG_PLAYABLE);
mediaItems.add(item);
}

saveResult.sendResult(mediaItems);
Дополнительная информация:
Когда я использую Uri.parse, я получаю такие uri:
/data/data/com. emrick.dj/albumart/Джуди Коллинз/Огни Эдема/Огни Эдема.jpg
/data/data/com.emrick.dj/audio/Джуди Коллинз/Огни Эдема Eden/From A Distance.mp3
Когда я использую вызов Uri.fromFile, я получаю такие uri:
file:///data/data/com.emrick. dj/albumart/Judy%20Collins/Fires%20Of%20Eden/Fires%20Of%20Eden.jpg
file:///data/data/com.emrick.dj/audio/Judy%20Collins/Fires%20Of%20Eden/From%20A%20Distance.mp3
Кроме того, работает приложение mp3-плеера (на основе которого оно основано) на моем телефоне, я вижу все обложки альбомов и воспроизводимые mp3-файлы, поэтому я считаю, что моя музыкальная база данных в порядке.

Подробнее здесь: https://stackoverflow.com/questions/793 ... rt-appears
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»