assemble($url, $options, FALSE); $variables['media_embed'][0]['children']['#url'] = $url; } } // Make video autoplay, loop and disabling any controls and branding. if (isset($variables['media_embed'][0]['#build']['settings']['scheme']) && $variables['media_embed'][0]['#build']['settings']['type'] === 'video') { $settings = $variables['media_embed'][0]['#build']['settings']; $settings['autoplay'] = TRUE; // Make modifications by provider. $url = !empty($settings['autoplay_url']) ? $settings['autoplay_url'] : $settings['embed_url']; if (UrlHelper::isExternal($url)) { $options = []; switch ($settings['scheme']) { case 'vimeo': $options['query']['autoplay'] = 1; $options['query']['background'] = 1; $options['query']['loop'] = 1; $options['query']['muted'] = 1; break; case 'youtube': $options['query']['autoplay'] = 1; $options['query']['controls'] = 0; $options['query']['disablekb'] = 1; $options['query']['fs'] = 0; $options['query']['mute'] = 1; $options['query']['loop'] = 1; $options['query']['enablejsapi'] = 1; $options['query']['modestbranding'] = 1; $options['query']['playlist'] = $settings['video_id']; break; } // Replace url. /** @var \Drupal\Core\Utility\UnroutedUrlAssemblerInterface $unrouted_url_assembler */ $unrouted_url_assembler = Drupal::service('unrouted_url_assembler'); $url = $unrouted_url_assembler->assemble($url, $options, FALSE); $settings['autoplay_url'] = $url; $settings['embed_url'] = $url; $variables['media_embed'][0]['#build']['settings'] = $settings; $variables['media_embed']['#blazy'] = $settings; } } }