L'implémentation de la commande radio est basée sur MediaSession
et
MediaBrowse
, qui permettent aux applis multimédias et assistant vocal de
contrôler la radio. Pour en savoir plus, consultez
Créez des applications multimédias pour voitures sur developer.android.com.
Une implémentation d'arborescence de navigation multimédia est fournie dans la documentation car-broadcastradio-support
bibliothèque dans packages/apps/Car/libs
. Cette bibliothèque contient
également des extensions de
ProgramSelector pour convertir l'URI en URI et inversement. Il est recommandé que les
implémentations radio
utilisez cette bibliothèque pour créer l'arborescence de navigation associée.
Sélecteur de source multimédia
Pour assurer une transition fluide entre la radio et d'autres applications affichées dans des contenus multimédias,
la bibliothèque car-media-common contient des classes qui doivent être intégrées à la radio
l'application. MediaAppSelectorWidget
peut être inclus dans le fichier XML de l'application Radio.
(icône et menu déroulant utilisés dans les applications multimédias et de radio de référence):
<com.android.car.media.common.MediaAppSelectorWidget android:id="@+id/app_switch_container" android:layout_width="@dimen/app_switch_widget_width" android:layout_height="wrap_content" android:background="@drawable/app_item_background" android:gravity="center" />
Ce widget lance AppSelectionFragment
, qui affiche une
Liste des sources multimédias vers lesquelles il est possible de basculer. Si vous souhaitez une UI
autre que celle fournie,
vous pouvez créer un widget personnalisé pour lancer AppSelectionFragment
lorsque le
le sélecteur doit s'afficher.
AppSelectionFragment newFragment = AppSelectionFragment.create(widget, packageName, fullScreen); newFragment.show(mActivity.getSupportFragmentManager(), null);
Un exemple d'implémentation est fourni dans l'implémentation de l'application de radio de référence,
situé dans le pays suivant : packages/apps/Car/Radio
.
Spécifications détaillées des commandes
MediaSession
(via MediaSession.Callback
)
fournit des mécanismes de contrôle pour le programme radio en cours de lecture:
onPlay
,onStop
. (réactivez) le son de la radio.onPause
Mise en pause avec contrôle du direct (si compatible).onPlayFromMediaId
lire n'importe quel contenu à partir d'un dossier racine ; Exemple : "Mets FM" ou "Mets la radio".onPlayFromUri
Lire une fréquence spécifique. Par exemple, "Mets 88.5 FM".onSkipToNext
,onSkipToPrevious
. Régler sur un titre suivant ou précédent .onSetRating
ajouter des éléments aux favoris ou en supprimer.
MediaBrowser présente un fichier MediaItem sur trois types de répertoires de premier niveau:
- (Facultatif) Programmes (stations). Ce mode est généralement utilisé par des signaux doubletuner pour indiquer toutes les stations de radio réglables disponibles à l'emplacement de l'utilisateur.
- Favoris. Programmes de radio ajoutés à la liste des favoris, certains peuvent l'être indisponible (en dehors de la plage de réception).
- Chaînes du bracelet. Tous les canaux physiquement possibles dans la région actuelle (87,9, 88,1, 88,3, 88,5, 88,7, 88,9, 89,1, etc.). Chaque bande dispose d'un répertoire de premier niveau distinct.
![Structure de l'arborescence MediaBrowserService](https://source.android.com/static/docs/automotive/images/radio_01.png?authuser=0&hl=fr)
Chaque élément de chacun de ces dossiers (AM/FM/Programs) est un MediaItem avec un URI qui peut être utilisé avec MediaSession pour l'ajuster. Chaque dossier de premier niveau (AM/FM/Programs) est un MediaItem avec un MediaId qui peut être utilisé avec MediaSession pour déclencher la lecture (à la discrétion de l'OEM). Pour par exemple, "Mets FM", "Mets le matin" et "Mets la radio" sont toutes des requêtes radio non spécifiques qui utilisent mediaId à envoyer à l'application de radio OEM. C'est l'application Radio de déterminer ce que vous voulez écouter sur requête générique et le mediaId.
MediaSession
Étant donné qu'il n'existe pas de concept de mise en pause d'une diffusion en direct, les actions Lecture, Pause et Arrêt ne s'appliquent pas toujours à la radio. Avec la case d'option, l'action Arrêt est associée à la coupure du son du flux. tandis que Play est associé à la suppression du son.
Certains tuners (ou applications) permettent de simuler la mise en pause d'un flux de diffusion en
le contenu mis en cache, puis de
le lire plus tard. Dans ce cas, utilisez onPause
.
La lecture à partir des actions mediaId et URI est destinée à se régler sur une station récupéré à partir de l'interface MediaBrowser. Le mediaId est une chaîne arbitraire. fournies par l'application radio pour imposer un identifiant unique (de sorte qu'un identifiant donné pointe vers un seul élément) et stable (un élément donné a le même identifiant pendant toute la session) avec laquelle pour identifier une station donnée. L'URI doit suivre un schéma bien défini. En bref, un URI du sélecteur de programme. Bien que cela préserve l'attribut d'unité, il n'est pas nécessaire soit stable, bien qu'elle puisse changer lorsque la station passe à une fréquence différente.
onPlayFromSearch
n'est pas utilisé par défaut. Est à la charge du client
(application associée) pour sélectionner un résultat de recherche dans l'arborescence MediaBrowser. En mouvement
cette responsabilité à l'égard de l'application radio augmenterait la complexité, nécessiterait des contrats formels sur la façon dont
les requêtes de chaîne de caractères devraient apparaître et entraîner une expérience utilisateur inégale sur différents matériels
plates-formes.
Remarque:L'application de radio ne contient pas d'informations Informations utiles pour rechercher un nom de station non exposé au client via l'interface MediaBrowser.
Le passage à la station suivante ou précédente dépend du contexte actuel:
- Lorsqu'une application passe sur une station de la liste des favoris, elle peut passer à la radio suivante à partir de la liste des favoris.
- L'écoute d'une station de la liste des programmes peut entraîner le réglage de la station disponible, triée en fonction du numéro de la chaîne.
- Écouter un canal arbitraire peut entraîner le réglage du canal physique suivant, même en l'absence de signal de diffusion.
L'application de radio gère ces actions.
Gestion des exceptions
TransportControls
("Lecture", "Arrêt" et "Suivant") n'indique pas si l'action
réussissent ou non. Le seul moyen d'indiquer une erreur est de définir la classe MediaSession
en
STATE_ERROR
avec un message d'erreur.
L'application radio doit gérer ces actions et les exécuter ou définir un état d'erreur.
Si l'exécution de la commande de lecture n'est pas immédiate, l'état de lecture doit être défini sur
STATE_CONNECTING
(en cas de réglage direct) ou
STATE_SKIPPING_TO_PREVIOUS
ou
NEXT
pendant l'exécution de la commande.
Le client doit surveiller la
PlaybackState
et vérifier que la session a modifié le programme actuel en fonction de ce qui a été demandé ou saisi dans
état d'erreur. STATE_CONNECTING
ne doit pas dépasser 30 secondes. Cependant, l'accord direct
La fréquence AM/FM devrait être beaucoup plus rapide.
Ajouter et supprimer des favoris
MediaSession prend en charge les évaluations, qui peuvent être utilisées pour contrôler les favoris. onSetRating
appelé avec une note de type
RATING_HEART
ajoute ou supprime la station actuellement réglée dans la liste des favoris.
Contrairement aux anciens préréglages, ce modèle part du principe que les favoris
, lorsque chaque favori enregistré a été alloué à un emplacement numérique (généralement de 1 à 6).
Par conséquent, les systèmes basés sur des préréglages seraient incompatibles avec onSetRating
.
opération.
L'API MediaSession a une limite : seule la station actuellement sélectionnée peuvent être ajoutées ou supprimées. Par exemple, les éléments doivent être sélectionnés avant d'être peuvent être supprimées. Il s'agit seulement d'une limitation du client MediaBrowser, l'application associée. L'application de radio n'est pas soumise à des restrictions similaires. Cette partie est facultative lorsqu'une application ne prend pas en charge les Favoris.
Navigateur multimédia
Pour exprimer les fréquences ou les noms de canaux physiques (lors du réglage à un canal arbitraire adapté à une technologie radio donnée) sont valides pour pour une région donnée, tous les canaux (fréquences) valides sont répertoriés pour chaque bande. Aux États-Unis, cela correspond à 101 chaînes FM comprises entre 87,8 et Plage de 108,0 MHz (en utilisant un espacement de 0,2 MHz) et canaux 117 AM dans la plage 530 jusqu'à 1 700 kHz (en utilisant un espacement de 10 kHz). Comme la radio HD utilise le même espace de canaux, elles ne sont pas présentées séparément.
La liste des programmes de radio actuellement disponibles est plate, car elle ne permet pas des schémas d'affichage tels que le regroupement par ensemble de diffusion audio directe (DAB).
Il se peut que les entrées de la liste des favoris ne soient pas modifiables. Par exemple, si une valeur programme n'est pas autorisé. L'application radio peut ou non détecter si l'entrée peuvent être ajustés à l'avance. Si c'est le cas, il est possible que l'entrée ne soit pas jouable.
Pour identifier les dossiers de premier niveau, le mécanisme utilisé par le Bluetooth est appliqué.
Autrement dit, un groupe "Bonus" de
MediaDescription
contient un champ spécifique au tuner, tout comme le Bluetooth avec
EXTRA_BT_FOLDER_TYPE
.
Dans le cas de la radiodiffusion, cela permet de définir les nouveaux champs suivants dans le
API publique:
EXTRA_BCRADIO_FOLDER_TYPE = "android.media.extra.EXTRA_BCRADIO_FOLDER_TYPE"
Un des valeurs suivantes: <ph type="x-smartling-placeholder">- </ph>
BCRADIO_FOLDER_TYPE_PROGRAMS = 1
Programmes actuellement disponibles.BCRADIO_FOLDER_TYPE_FAVORITES = 2
Favoris.BCRADIO_FOLDER_TYPE_BAND = 3
Tous les canaux physiques d'un groupe donné.
Il n'est pas nécessaire de définir des champs de métadonnées personnalisés spécifiques aux cases d'option, car tous les données pertinentes s'intègrent dans le schéma
MediaBrowser.MediaItem
existant:- Nom du programme (RDS PS, DAB service name).
MediaDescription.getTitle
. - Fréquence FM. URI (voir
ProgramSelector) ou
MediaDescription.getTitle
(si une entrée se trouve dans le dossierBROADCASTRADIO_FOLDER_TYPE_BAND
). - Identifiants radio-spécifiques (RDS PI, DAB SId).
MediaDescription.getMediaUri
a été analysé dans ProgramSelector.
En règle générale, il n'est pas nécessaire d'extraire la fréquence FM pour une entrée sur la Programme en cours ou liste de favoris (dans la mesure où le client doit agir sur des médias ID). Toutefois, si un tel besoin se présente (par exemple, à des fins d'affichage), il est présentes dans l'URI et peuvent être analysées dans
ProgramSelector
. Cela dit, il n'est pas recommandé d'utiliser l'URI pour sélectionner des éléments dans la section session. Pour en savoir plus, consultezProgramSelector
Pour éviter les problèmes de performances ou de liaison, le service MediaBrowser doit être compatible avec la pagination:
EXTRA_PAGE
EXTRA_PAGE_SIZE
- Paramètres supplémentaires pour
subscribe()
Remarque:Par défaut, la pagination est implémentée par défaut dans le
onLoadChildren()
sans gestion des options.Entrées associées provenant de tous types de listes (chaînes brutes, programmes trouvés et favoris) peuvent avoir différents mediaId (c'est à l'appli Radio ; la compatibilité de la bibliothèque seront différents). Les URI (dans le formulaire ProgramSelector) diffèrent entre les chaînes brutes et les programmes que l'on retrouve dans la plupart des cas (sauf pour les sans RDS), mais sont globalement les mêmes entre les programmes trouvés et les favoris (sauf par exemple, lors de la mise à jour de la prévision de disponibilité).
Le fait d'avoir différents mediaIds pour les entrées de différents types de listes qu'il est possible d'effectuer différentes actions les concernant. Vous pouvez parcourir la liste des Favoris ou la liste "Tous les programmes" sur
onSkipToNext
, en fonction du dossier dans lequelMediaItem
sélectionné (voir MediaSession).Actions de réglage spéciales
La liste de programmes permet aux utilisateurs de sélectionner une station spécifique, mais ne leur permet pas de des requêtes générales, telles que "Tune to FM", qui pourraient entraîner un réglage sur un écouté une station sur la bande FM.
Pour permettre de telles actions, certains répertoires de premier niveau disposent du
FLAG_PLAYABLE
défini (avecFLAG_BROWSABLE
) pour les dossiers).Action Titres pour Procédure d'émission Écouter la radio N'importe quelle chaîne de radio startService(ACTION_PLAY_BROADCASTRADIO)
OU,
playFromMediaId(MediaBrowser.getRoot())
Mets FM N'importe quelle chaîne FM Lire à partir du mediaId
de la bande FM.La détermination du programme à régler dépend de l'application. C'est généralement la dernière chaîne de la liste donnée. Pour en savoir plus sur
ACTION_PLAY_BROADCASTRADIO
, consultez Intentions de lecture générales :Découverte et connexion au service
PackageManager
peut trouver directement le service MediaBrowserService qui diffuse la radiodiffusion arborescence. Pour cela, appelezresolveService
avec l'intentACTION_PLAY_BROADCASTRADIO
(voir Intentions de lecture générales) etMATCH_SYSTEM_ONLY
. Pour trouver tous les services qui proposent la radio peut être plus d'un ; par exemple, séparez les fonctions AM/FM et satellite), utilisezqueryIntentServices
Le service résolu gère la liaison
android.media.browse.MediaBrowserService
l’intention. Cette information est validée via GTS.Pour vous connecter au MediaBrowserService sélectionné, créer Instance
MediaBrowser
pour un composant de service donné etconnect
. Une fois la connexion établie, vous pouvez obtenir un handle vers MediaSession viagetSessionToken
L'application Radio peut limiter les packages clients autorisés à se connecter dans un
onGetRoot
la mise en œuvre de leur service. L'application doit autoriser les applications système à se connecter sans liste blanche. Pour en savoir plus sur l'ajout à la liste blanche, consultez Acceptez le package et la signature de l'application Assistant.Si l'application spécifique à la source (par exemple, une application de radio) est installée sur un appareil sans une telle source, il présenterait tout de même la gestion
ACTION_PLAY_BROADCASTRADIO
, mais son arborescence MediaBrowser ne doivent pas contenir de balises radio-spécifiques. Ainsi, un client prêt à vérifier si source est disponible sur un appareil, doit:- Découvrez la radio (appelez
resolveService
pourACTION_PLAY_BROADCASTRADIO
). - Créez
MediaBrowser
, puis connectez-vous. - Déterminer la présence de
MediaItem
avecEXTRA_BCRADIO_FOLDER_TYPE
supplémentaires.
Remarque : Dans la plupart des cas, le client doit analyser tous les arborescences MediaBrowser disponibles pour détecter toutes les sources disponibles pour un appareil donné.
Noms des bandes
La liste des bandes est représentée par un ensemble de répertoires de premier niveau avec un type de dossier définie sur
BCRADIO_FOLDER_TYPE_BAND
. LeursMediaItem
les titres sont des chaînes localisées pour représenter les noms des groupes de musique. Dans la plupart des cas, ce sera est identique à la traduction en anglais, mais le client ne peut pas s'en fier à cette hypothèse.Pour obtenir un mécanisme stable permettant de rechercher certains bracelets, une un tag supplémentaire a été ajouté pour les dossiers de bande
EXTRA_BCRADIO_BAND_NAME_EN
. C'est un nom non localisé de la bande et ne peut accepter qu'une seule des valeurs prédéfinies suivantes:AM
FM
DAB
Si la bande ne figure pas sur cette liste, vous ne devez pas définir son nom. Toutefois, si la bande figure sur la liste, un tag doit être défini. La radio HD ne fonctionne pas énumérer des bandes distinctes, car il utilise le même support sous-jacent que AM/FM.
Intentions de jeu générales
Chaque application dédiée à la lecture d'une source donnée (radio ou CD, par exemple) doit gérer une l'intention générale play pour commencer à lire du contenu, éventuellement (par exemple, après le démarrage). C’est à l’application comment sélectionner le contenu à mais il s'agit généralement d'un programme radio ou d'une piste CD récemment écoutés. d'un intent défini pour chaque source audio:
android.car.intent.action.PLAY_BROADCASTRADIO
android.car.intent.action.PLAY_AUDIOCD
: CD-DA ou CD-Textandroid.car.intent.action.PLAY_DATADISC
: disque de données optique comme CD/DVD, mais pas CD-DA (peut être un CD en mode mixte)android.car.intent.action.PLAY_AUX
: sans spécifier le Port AUXandroid.car.intent.action.PLAY_BLUETOOTH
android.car.intent.action.PLAY_USB
: sans spécifier le Périphérique USBandroid.car.intent.action.PLAY_LOCAL
: stockage multimédia local (Flash intégré)
Les intents ont été choisis pour les commandes générales du jeu, car ils résolvent deux problèmes à la fois: la commande générale play elle-même et la détection de services. L'avantage supplémentaire d'avoir une telle intention serait la possibilité d'exécuter une telle une action simple sans ouvrir de session MediaBrowser.
La découverte de services est en fait le problème le plus important les intents. La procédure de recherche de services est ainsi simple et sans équivoque (voir Découverte et connexion au service).
Pour faciliter certaines implémentations clientes, il existe une autre méthode émettre une commande de lecture de ce type (qui doit également être implémentée par l'application radio): émettant
playFromMediaId
avec le rootId du nœud racine (utilisé comme mediaId). Alors que le nœud racine n'est pas conçu pour être lu, son rootId est une chaîne arbitraire qui peut être utilisée en tant que mediaId. Toutefois, les clients ne sont pas obligés pour comprendre cette nuance.Sélecteurdeprogramme
Bien que
mediaId
soit suffisant pour sélectionner une chaîne dans leMediaBrowserService
, il est lié à une session et n'est pas cohérent. entre les fournisseurs. Dans certains cas, le client peut avoir besoin d'un pointeur absolu (comme un fréquence absolue) afin de la maintenir entre les sessions et les appareils.À l'ère des émissions de radio numériques, une fréquence simple ne suffit pas pour se régler sur une station spécifique. Par conséquent, utilisez
ProgramSelector
pour régler vers un canal analogique ou numérique.ProgramSelector
se compose de deux parties:- Identifiant principal : Identifiant unique et stable d'une radio donnée. station qui ne change pas, mais qui risque de ne pas suffire pour se régler sur cette station. Par exemple : Code PI RDS, qui peut être traduit en indicatif aux États-Unis.
- Identifiants secondaires : Identifiants supplémentaires utiles pour le réglage à cette station (fréquence, par exemple), en incluant éventuellement des identifiants d'autres les technologies radio. Par exemple, une station DAB peut avoir une diffusion de remplacement analogique.
Pour permettre à
ProgramSelector
de tenir dansMediaBrowser
- ou Solution basée surMediaSession
, définissez un schéma d'URI pour le sérialiser. Le schéma est définis comme suit:broadcastradio://program/<primary ID type>/<primary ID>? <secondary ID type>=<secondary ID>&<secondary ID type>=<secondary ID>
Dans cet exemple, la partie secondaire "Identifiants" (après le point d'interrogation (
?
)) est facultatif et peut être supprimé pour fournir un identifiant stable à utiliser en tant quemediaId
. Exemple :broadcastradio://program/RDS_PI/1234?AMFM_FREQUENCY=88500&AMFM_FREQUENCY=103300
broadcastradio://program/AMFM_FREQUENCY/102100
broadcastradio://program/DAB_SID_EXT/14895264?RDS_PI=1234
La partie autorité (ou hôte) de
program
offre de la place pour l'extension de schéma à l'avenir. Les chaînes de type d'identifiant sont spécifiées avec précision comme noms dans la définition HAL 2.x deIdentifierType
et la valeur est un nombre décimal ou hexadécimal (avec le préfixe0x
).Tous les identifiants spécifiques aux fournisseurs sont représentés par le
VENDOR_
préfixe. Par exemple,VENDOR_0
pourVENDOR_START
etVENDOR_1
pourVENDOR_START
plus 1. Ces URI sont spécifiques le matériel radio sur lequel ils ont été générés et ne peuvent pas être transférés d'un appareil à l'autre ; faite par différents OEM.Ces URI doivent être attribués à chaque MediaItem sous la case d'option de premier niveau dossiers. De plus, MediaSession doit être compatible avec les
playFromMediaId
etplayFromUri
. Cependant, l'URI est principalement destiné au trafic radio l'extraction de métadonnées (comme la fréquence FM) et le stockage persistant. Il n'y a aucun garantir que l'URI sera disponible pour tous les éléments multimédias (par exemple, lorsque l'URI principal le type d'ID n'est pas encore pris en charge par le framework). En revanche, l'ID média fonctionne toujours. Il est déconseillé aux clients d'utiliser l'URI pour sélectionner des éléments session MediaBrowser en cours. Utilisez plutôtplayFromMediaId
. Cela dit, il s'agit n'est pas facultatif pour l'application de diffusion, et les URI manquants sont réservés aux cas justifiés.La conception initiale utilisait un seul signe deux-points au lieu de la séquence
://
. après la partie schéma. Toutefois, le premier n'est pas pris en charge parandroid.net.Uri
pour les références d'URI hiérarchiques absolues.Autres types de sources
Les autres sources audio peuvent être traitées de la même manière. Par exemple, l'entrée auxiliaire et le lecteur CD audio.
Une même application peut diffuser plusieurs types de sources. Dans ce cas, nous vous recommandons de créer un service MediaBrowserService distinct chaque type de source. Même dans une configuration avec plusieurs sources diffusées/MediaBrowserServices, il est fortement recommandé d'avoir une seule MediaSession au cours d'une même l'application.
CD audio
Semblable à un CD audio, dans la mesure où l'application qui utilise ces disques expose MediaBrowser avec une seule entrée consultable (ou plus, si le système dispose d'un changeur de CD), qui à son tour contiendra toutes les pistes d'un CD donné. Si le système n'a pas connaissance des pistes de chaque CD (par exemple, lorsque tous les disques sont insérés en même temps dans une cartouche et ne la lisent pas toutes), puis L'élément MediaItem pour l'intégralité du disque correspondrait simplement à
PLAYABLE
, et non àBROWSABLE
plusPLAYABLE
. S'il n'y a pas de disque dans l'emplacement spécifié, l'élément n'est niPLAYABLE
, niBROWSABLE
(mais chaque emplacement doit toujours être présent dans l'arborescence).Figure 3. Arborescence de CD audio. Ces entrées seront marquées de la même manière que les dossiers radio de diffusion are; ils contiennent des champs supplémentaires supplémentaires définis dans l'API MediaDescription:
EXTRA_CD_TRACK
: pour chaque tranche deMediaItem
d'un CD audio, Numéro de titre basé sur 1.EXTRA_CD_DISK
: numéro de disque de base 1.
Pour le système compatible CD-Text et les disques compatibles, l'élément MediaItem de premier niveau doit avoir un titre pour le disque. De même, les MediaItems pour les pistes auront une valeur le titre de la piste.
Entrée auxiliaire
L'application qui diffuse l'entrée auxiliaire expose une arborescence MediaBrowser avec une seule entrée (ou plusieurs, lorsque plusieurs ports existent) représentant le port d'entrée AUX. La MediaSession correspondante utilise mediaId et passe à cette source après avoir reçu la requête
playFromMediaId
.Figure 4. arborescence AUX. Chaque entrée MediaItem AUX comporte un champ supplémentaire
EXTRA_AUX_PORT_NAME
défini sur le nom non localisé du port sans le bouton "AUX" l'expression. Exemple : "AUX 1" doit être réglé sur "1", "AUX" avant" par "avant" et "AUX" en une chaîne vide. Dans les langues autres que l'anglais, le nom reste la même chaîne anglaise. Peu probable queEXTRA_BCRADIO_BAND_NAME_EN
: les valeurs sont définies par l'OEM et ne sont pas limité à une liste prédéfinie.Si le matériel peut détecter les appareils connectés au port AUX, il doit marquer MediaItem en tant que
PLAYABLE
, uniquement si l'entrée est connectée. Le matériel doit est quand même énuméré (mais pasPLAYABLE
) si rien n'a été connecté à ce . Si le matériel ne dispose pas d'une telle capacité, l'élément MediaItem doit toujours être défini surPLAYABLE
Champs supplémentaires
Définissez les champs suivants:
EXTRA_CD_TRACK = "android.media.extra.CD_TRACK"
EXTRA_CD_DISK = "android.media.extra.CD_DISK"
EXTRA_AUX_PORT_NAME = "android.media.extra.AUX_PORT_NAME"
Le client doit examiner les MediaItems de premier niveau pour identifier les éléments ayant le
EXTRA_CD_DISK
ouEXTRA_AUX_PORT_NAME
champ supplémentaire défini.Exemples détaillés
Les exemples suivants décrivent l'arborescence MediaBrowser pour les types de sources de cette conception.
Broadcast radio MediaBrowserService (gère
ACTION_PLAY_BROADCASTRADIO
):- Radios (consultable)
EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_PROGRAMS
<ph type="x-smartling-placeholder">- </ph>
- URI BBC One (lecture) :
broadcastradio://program/RDS_PI/1234?AMFM_FREQUENCY=90500
- URI ABC 88.1 (lecture) :
broadcastradio://program/RDS_PI/5678?AMFM_FREQUENCY=88100
- URI ABC 88.1 HD1 (lecture) :
broadcastradio://program/HD_STATION_ID_EXT/158241DEADBEEF?AMFM_FREQUENCY=88100&RDS_PI=5678
- URI ABC 88.1 HD2 (lecture) :
broadcastradio://program/HD_STATION_ID_EXT/158242DEADBEFE
- 90.5 FM (lecture) – FM sans RDSURI:
broadcastradio://program/AMFM_FREQUENCY/90500
- URI (lecture) 620 AM:
broadcastradio://program/AMFM_FREQUENCY/620
- URI BBC One (qui peut être lu) :
broadcastradio://program/DAB_SID_EXT/1E24102?RDS_PI=1234
- URI BBC One (lecture) :
- Favoris (consultables, jouables)
EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_FAVORITES
<ph type="x-smartling-placeholder">- </ph>
- URI BBC One (qui peut être lu) :
broadcastradio://program/RDS_PI/1234?AMFM_FREQUENCY=101300
- URI BBC Two (non lisible) :
broadcastradio://program/RDS_PI/1300?AMFM_FREQUENCY=102100
- URI BBC One (qui peut être lu) :
- AM (consultable, jouable):
EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_BANDEXTRA_BCRADIO_BAND_NAME_EN="AM"
<ph type="x-smartling-placeholder">- </ph>
- URI (lecture) 530 AM:
broadcastradio://program/AMFM_FREQUENCY/530
- URI (lecture) 540 AM:
broadcastradio://program/AMFM_FREQUENCY/540
- URI (lecture) 550 AM:
broadcastradio://program/AMFM_FREQUENCY/550
- URI (lecture) 530 AM:
- FM (consultable, lisible):
EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_BANDEXTRA_BCRADIO_BAND_NAME_EN="FM"
<ph type="x-smartling-placeholder">- </ph>
- URI 87.7 FM (lecture) :
broadcastradio://program/AMFM_FREQUENCY/87700
- URI 87.9 FM (lecture) :
broadcastradio://program/AMFM_FREQUENCY/87900
- URI 88.1 FM (lecture) :
broadcastradio://program/AMFM_FREQUENCY/88100
- URI 87.7 FM (lecture) :
- DAB (lecture):
EXTRA_BCRADIO_FOLDER_TYPE=BCRADIO_FOLDER_TYPE_BANDEXTRA_BCRADIO_BAND_NAME_EN="DAB"
Audio CD MediaBrowserService (gère
ACTION_PLAY_AUDIOCD
):- Disque 1 (lisible)
EXTRA_CD_DISK=1
- Disque 2 (consultable, lisible)
EXTRA_CD_DISK=2
<ph type="x-smartling-placeholder">- </ph>
- Piste 1 (jouable)
EXTRA_CD_TRACK=1
- Piste 2 (jouable)
EXTRA_CD_TRACK=2
- Piste 1 (jouable)
- Mon CD musical (consultable, lisible)
EXTRA_CD_DISK=3
<ph type="x-smartling-placeholder">- </ph>
- Tout par moi-même (jouable)
EXTRA_CD_TRACK=1
- Reise, Reise (jouable)
EXTRA_CD_TRACK=2
- Tout par moi-même (jouable)
- Emplacement 4 vide (impossible de lire)
EXTRA_CD_DISK=4
AUX MediaBrowserService (gère
ACTION_PLAY_AUX
):- Port AUX (mode de lecture) à l'avant de l'appareil
EXTRA_AUX_PORT_NAME="front"
- Connecteur AUX arrière (pouvant être lu)
EXTRA_AUX_PORT_NAME="rear"