Start · Sprachen · JavaScript · Referenz · MediaMetadata.artist

MediaMetadata.artist

Eigenschaft

Liest oder setzt den Namen des Künstlers, der Band oder des Urhebers des aktuell abgespielten Mediums für die Media-Session-Anzeige.

seit JavaScript Baseline 2023: Chrome 73+, Edge 79+, Firefox 82+, Kategorie: webapi

Signatur

MediaMetadata.artist

Beschreibung

Die Eigenschaft artist des MediaMetadata-Interfaces enthält als Zeichenkette den Namen des Künstlers, der Gruppe, des Podcast-Hosts oder allgemein des Urhebers des gerade wiedergegebenen Mediums. Sie ist lesend und schreibend zugänglich.

Zusammen mit title, album und artwork bildet sie die Metadaten, die der Browser über die Media Session API an das Betriebssystem weitergibt. Dort erscheinen sie in Mediensteuerungen, etwa auf dem Sperrbildschirm von Android, in der macOS-Kontrollleiste, im Windows-Medien-Overlay oder auf Bluetooth-Geräten und Smartwatches.

Sinnvoll ist das bei jeder Web-Anwendung, die Audio oder Video wiedergibt: Musik-Player, Podcast-Apps, Hörbuch-Plattformen oder Video-Streaming. Setzt man den Wert auf ein MediaMetadata-Objekt, das bereits navigator.mediaSession.metadata zugewiesen ist, aktualisiert der Browser die Anzeige sofort, zum Beispiel beim Wechsel zum nächsten Titel.

Beispiele

Metadaten beim Abspielen setzen und artist auslesen

const audio = document.querySelector('audio');

if ('mediaSession' in navigator) {
  navigator.mediaSession.metadata = new MediaMetadata({
    title: 'Bohemian Rhapsody',
    artist: 'Queen',
    album: 'A Night at the Opera',
    artwork: [
      { src: '/covers/opera-512.png', sizes: '512x512', type: 'image/png' }
    ]
  });

  console.log(navigator.mediaSession.metadata.artist);
}

audio.play();
Queen

Künstler beim Titelwechsel in einer Playlist aktualisieren

const playlist = [
  { src: '/audio/1.mp3', title: 'Clair de Lune', artist: 'Claude Debussy' },
  { src: '/audio/2.mp3', title: 'Gymnopédie No. 1', artist: 'Erik Satie' }
];

const audio = new Audio();
const metadata = new MediaMetadata();
navigator.mediaSession.metadata = metadata;
let index = 0;

const playTrack = async (i) => {
  const track = playlist[i];
  audio.src = track.src;
  // Bestehendes Objekt ändern – die Systemanzeige aktualisiert sich
  metadata.title = track.title;
  metadata.artist = track.artist;
  await audio.play();
  console.log(`Jetzt läuft: ${metadata.title} – ${metadata.artist}`);
};

navigator.mediaSession.setActionHandler('nexttrack', () => {
  index = (index + 1) % playlist.length;
  playTrack(index);
});

document.querySelector('#play').addEventListener('click', () => playTrack(index));
Jetzt läuft: Clair de Lune – Claude Debussy

Standardwert und Typumwandlung

const meta = new MediaMetadata({ title: 'Folge 42' });
console.log(JSON.stringify(meta.artist));

meta.artist = 123;
console.log(typeof meta.artist, meta.artist);
"" string 123

// Wichtig · Fallstricke

  • Feature-Erkennung: Vor der Nutzung mit 'mediaSession' in navigator prüfen. Ältere Browser, besonders Safari vor Version 15, kennen MediaMetadata nicht und werfen sonst einen ReferenceError.
  • Nur ein Wert möglich: artist ist eine einfache Zeichenkette und keine Liste. Mehrere Künstler also selbst zusammenfügen, etwa mit ['A', 'B'].join(', ').
  • Typumwandlung: Zugewiesene Werte werden in Zeichenketten umgewandelt. null wird dabei zu \"null\" und nicht zu einem leeren Wert. Zum Leeren deshalb \"\" zuweisen.
  • Anzeige: Die Systemsteuerung zeigt Metadaten meist erst an, wenn ein Medienelement tatsächlich abspielt. Wie der Wert dargestellt und ob er gekürzt wird, hängt von Plattform und Browser ab.
  • Die Media Session API ist nur in sicheren Kontexten (HTTPS) verfügbar.