Media Browse

La fonctionnalité Cast Media Browse (CMB) permet aux utilisateurs d'écrans intelligents découvrir et utiliser votre catalogue de contenus audio ou vidéo. Le CMB le fait en l'amélioration de Web Receiver par une expérience de navigation simplifiée, spécialement conçu pour les écrans connectés.

CMB définit des modèles standardisés qui offrent une expérience de navigation cohérente qui respecte les conventions d'UI pour les écrans connectés. Les développeurs fournissent des données pour renseigner ces modèles standardisés. Ils sont compatibles avec les contenus audio et vidéo ou un mélange des deux.

Points d'entrée

Il existe deux points d'entrée pour CMB, à partir desquels un utilisateur peut parcourir et sélectionner du contenu à l'aide de commandes tactiles ou vocales.

Parcourir dans le lecteur

Balayez l'écran vers le haut pendant la lecture pour sélectionner un contenu fourni par l'application:

Vidéo

Entrée de recherche de médias – Vidéo 1 du lecteur Entrée de recherche de contenus multimédias – Vidéo 2 dans le lecteur

Audio

Entrée de recherche de contenus multimédias – Audio 1 du lecteur intégré Entrée de navigation multimédia – Audio 2 du lecteur

Parcourir les pages de destination

Lorsqu'un récepteur Web avec l'élément cast-media-player s'exécute sur Smart Affiche : CMB lorsque l'état est inactif.

Vidéo et audio

Entrée de recherche de médias : vidéo sur la page de destination Entrée de recherche de médias – Audio de la page de destination

Ajout de contenu…

Les développeurs sont chargés de renseigner pour chaque point d'entrée le modèle pour chaque élément de contenu. Le contenu utilisé pour la navigation dans le lecteur peut être différent de celui utilisé pour la navigation sur les pages de destination.

La navigation dans le lecteur permet d'afficher des éléments en rapport avec le contenu d'un utilisateur ou les éléments d'une playlist. Les fournisseurs de services de télévision en direct peuvent aussi utiliser cette point d'entrée pour remplir une liste de canaux afin de faciliter l'accès.

Utilisez la navigation sur les pages de destination pour faire connaître de nouveaux contenus originaux, est en cours de diffusion ou présente du contenu susceptible d'intéresser davantage l'utilisateur.

Activer la navigation multimédia

Fournissez une liste de contenus multimédias pour la navigation en appelant setBrowseContent:

const controls = cast.framework.ui.Controls.getInstance();
controls.setBrowseContent(BrowseContent);

L'interface utilisateur de Media Browse est mise à jour immédiatement après l'appel de cette méthode.

Hauteur de la zone de sûreté

Lorsque CMB est activé, la hauteur de la zone de sécurité de l'interface utilisateur du SDK Cast change, et vous vous devrez peut-être mettre à jour l'UI Web Receiver existante. Utilisez getSafeAreaHeight pour déterminer la hauteur de la zone de sécurité.

// Media Browse UI enabled
controls.setBrowseContent(BrowseContent);
console.log(controls.getSafeAreaHeight()); // 338px on Google Nest Hub

// Media Browse UI disabled
controls.setBrowseContent(null);
console.log(controls.getSafeAreaHeight()); // 408px on Google Nest Hub

Supprimer l'exploration multimédia

Pour supprimer l'interface utilisateur de Media Browse, utilisez null avec setBrowseContent:

controls.setBrowseContent(null);

Personnaliser l'exploration multimédia

Parcourir du contenu

Utilisez BrowseContent pour personnaliser le titre de l'interface utilisateur de Media Browse et mettre à jour des éléments:

Parcourir les médias : parcourir des contenus

A. BrowseContent.title

B. BrowseContent.items

Utilisez BrowseItem pour afficher le titre, le sous-titre, la durée et l'image de chaque élément dans le support Parcourir l'interface utilisateur:

Parcourir les fichiers multimédias – Parcourir l'article

A. BrowseItem.image

B. BrowseItem.duration

C. BrowseItem.title

D. BrowseItem.subtitle

Format

Utiliser targetAspectRatio afin de sélectionner le meilleur format pour vos composants Image. Trois formats sont pris en charge par le SDK Web Receiver:

Format Exemple
SQUARE_1_TO_1 Navigation multimédia – Format carré
PORTRAIT_2_TO_3 Parcourir des contenus multimédias – Format portrait
LANDSCAPE_16_TO_9 Parcourir des contenus multimédias – Format paysage

Messages

Lorsqu'un utilisateur sélectionne l'un des éléments dans l'interface utilisateur Media Browse, le récepteur Web Le SDK envoie un message LOAD à l'application en fonction les valeurs de l'élément BrowseItem sélectionné.

Exemple de code

const controls = cast.framework.ui.Controls.getInstance();

const item1 = new cast.framework.ui.BrowseItem();
item1.title = 'Title 1';
item1.subtitle = 'Subtitle 1';
item1.duration = 300;
item1.imageType = cast.framework.ui.BrowseImageType.MUSIC_TRACK;
item1.image = new cast.framework.messages.Image('1.jpg');
item1.entity = 'example://gizmos/1';

const item2 = new cast.framework.ui.BrowseItem();
item2.title = 'Title 2';
item2.subtitle = 'Subtitle 2';
item2.duration = 100;
item2.imageType = cast.framework.ui.BrowseImageType.MUSIC_TRACK;
item2.image = new cast.framework.messages.Image('2.jpg');
item2.entity = 'example://gizmos/2';

const items = [item1, item2];

const browseContent = new cast.framework.ui.BrowseContent();
browseContent.title = 'Up Next';
browseContent.items = items;

playerDataBinder.addEventListener(
  cast.framework.ui.PlayerDataEventType.MEDIA_CHANGED,
  (e) => {
    // Media browse
    controls.setBrowseContent(browseContent);
  });

playerManager.setMessageInterceptor(
  cast.framework.messages.MessageType.LOAD, loadRequestData => {
    if (loadRequestData.media && loadRequestData.media.entity) {
      // Load by entity
      loadRequestData.media.contentId = entityToId(loadRequestData.media.entity);
      loadRequestData.media.contentUrl = entityToUrl(loadRequestData.media.entity);
    }
    return loadRequestData;
  });