public function SoundManagerAudioPlayer::renderPlayer in AudioField 8
Renders the player.
Parameters
\Drupal\Core\Field\FieldItemListInterface $items: The uploaded item list.
string $langcode: The language code.
array $settings: An array of additional render settings.
Return value
array Returns the rendered array.
Overrides AudioFieldPluginBase::renderPlayer
File
- src/
Plugin/ AudioPlayer/ SoundManagerAudioPlayer.php, line 28
Class
- SoundManagerAudioPlayer
- Implements the SoundManager Audio Player plugin.
Namespace
Drupal\audiofield\Plugin\AudioPlayerCode
public function renderPlayer(FieldItemListInterface $items, $langcode, array $settings) {
// Check to make sure we're installed.
if (!$this
->checkInstalled()) {
// Show the error.
$this
->showInstallError();
// Simply return the default rendering so the files are still displayed.
return $this
->renderDefaultPlayer($items, $settings);
}
// Create arrays to pass to the twig template.
$template_settings = $settings;
$template_settings['count'] = count($items);
// Start building settings to pass to the javascript SoundManager builder.
$player_settings = [
// SoundManager expects this as a 0 - 100 range.
'volume' => $settings['audio_player_initial_volume'] * 10,
'swfpath' => $this
->getPluginLibraryPath() . '/swf/',
];
return [
'audioplayer' => [
'#theme' => 'audioplayer',
'#plugin_id' => 'soundmanager',
'#plugin_theme' => $settings['audio_player_soundmanager_theme'],
'#settings' => $template_settings,
'#files' => $this
->getItemRenderList($items),
],
'downloads' => $this
->createDownloadList($items, $settings),
'#attached' => [
'library' => [
// Attach the SoundManager library.
'audiofield/audiofield.' . $this
->getPluginLibraryName(),
// Attach the skin library.
'audiofield/audiofield.' . $this
->getPluginLibraryName() . '.' . $settings['audio_player_soundmanager_theme'],
],
'drupalSettings' => [
'audiofieldsoundmanager' => [
$this
->getUniqueRenderId() => $player_settings,
],
],
],
];
}