updateMetadata method

  1. @override
Future<void> updateMetadata(
  1. MediaMetadata metadata
)
override

Updates the media metadata displayed by the browser.

Implementation

@override
Future<void> updateMetadata(MediaMetadata metadata) async {
  try {
    final session = web.window.navigator.mediaSession;

    _currentDuration = metadata.duration;

    final webMetadata = web.MediaMetadata(web.MediaMetadataInit(
      title: metadata.title ?? '',
      artist: metadata.artist ?? '',
      album: metadata.album ?? '',
      artwork: metadata.artworkUri != null
          ? [
              web.MediaImage(
                  src: metadata.artworkUri!,
                  sizes: '512x512',
                  type: 'image/png')
            ].toJS
          : <web.MediaImage>[].toJS,
    ));

    session.metadata = webMetadata;
  } catch (e) {
    // Metadata updates are best-effort.
  }
}