Skip to content

Android Auto : la recherche vocale (« joue tel album ») #59

Description

@InstaZDLL

Le problème

« Joue tel album » ne fonctionne pas dans la voiture.

L'arbre de navigation Android Auto est en place depuis la PR #36, mais la
recherche vocale ne l'est pas. Le lint MissingIntentFilterForMediaSearch est
donc rétrogradé en warning dans app/lint.xml, avec sa justification :
déclarer MEDIA_PLAY_FROM_SEARCH sans servir la recherche ouvrirait une porte
sur une pièce vide — l'utilisateur parle, et rien ne se passe.

Ce qui est décidé

Première version : la bibliothèque locale seulement. L'arbre de la #36 ne
contient qu'elle ; le catalogue serveur en a été écarté à dessein, parce qu'une
branche lente ou vide au volant est pire qu'une branche absente. La recherche
suit la même règle.

Sur le moteur de recherche existant, pas une seconde implémentation :
titre, artiste, album — puis on joue le meilleur résultat.

À vérifier avant de coder

D'après la documentation de Media3, et ce point n'a pas été vérifié dans le
code
: la demande vocale arriverait par onAddMediaItems, avec un
requestMetadata.searchQuery renseigné et sans mediaId.

Or BrowseCallback.addMediaItems ne résout aujourd'hui que par identifiant : un
élément sans mediaId tomberait donc dans un chemin qui ne sait rien en faire.
C'est la première chose à confirmer.

MediaLibrarySession.Callback.onSearch / onGetSearchResult sert l'autre
moitié : la liste de résultats que la voiture affiche.

Une fois que ça marche

Remonter MissingIntentFilterForMediaSearch à son niveau d'origine dans
app/lint.xml et déclarer MEDIA_PLAY_FROM_SEARCH — la porte mène alors
quelque part.

Réserve

Rien de tout cela n'aura été vu dans une vraie voiture tant que la validation
sur appareil n'aura pas eu lieu (voir l'issue dédiée).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

plannedPlanned for a future releasescope: playbackAudio playback engine and queuetype: featNew feature

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions