loadMedia method

  1. @override
Future<void> loadMedia(
  1. GoogleCastMediaInformation mediaInfo, {
  2. bool autoPlay = true,
  3. Duration playPosition = Duration.zero,
  4. double playbackRate = 1.0,
  5. List<int>? activeTrackIds,
  6. String? credentials,
  7. String? credentialsType,
  8. Map<String, dynamic>? customData,
})
override

Loads media on the remote media client.

customData is an optional arbitrary data map that is forwarded to the Cast receiver application via the standard Google Cast SDK MediaLoadRequestData.customData field. The receiver application can read this map to configure playback — for example, to inject custom HTTP request headers for adaptive streams (DASH/HLS) when using a custom receiver.

Implementation

@override
Future<void> loadMedia(
  GoogleCastMediaInformation mediaInfo, {
  bool autoPlay = true,
  Duration playPosition = Duration.zero,
  double playbackRate = 1.0,
  List<int>? activeTrackIds,
  String? credentials,
  String? credentialsType,
  Map<String, dynamic>? customData,
}) async {
  // Arm the stale-position guard BEFORE invoking the platform channel so
  // that any position tick emitted right after `loadMedia` is filtered out.
  _armPendingLoadGuard(playPosition);
  _channel.invokeMethod(
      'loadMedia',
      mediaInfo.toMap()
        ..addAll(
          {
            'autoPlay': autoPlay,
            'playPosition': playPosition.inSeconds,
            'playbackRate': playbackRate,
            'activeTrackIds': activeTrackIds,
            'credentials': credentials,
            'credentialsType': credentialsType,
            'customData': customData,
          }..removeWhere((key, value) => value == null),
        ));
}