You are here

class AudioJsAudioPlayer in AudioField 8

Implements the audio.js Audio Player plugin.

@AudioPlayer ( id = "audiojs_audio_player", title =

Plugin annotation


@Translation("audio.js audio player"),
  description = @Translation("Drop-in javascript library using native <audio> tag."),
  fileTypes = {
    "mp3",
  },
  libraryName = "audiojs",
  website = "http://kolber.github.io/audiojs/",
)

Hierarchy

Expanded class hierarchy of AudioJsAudioPlayer

File

src/Plugin/AudioPlayer/AudioJsAudioPlayer.php, line 22

Namespace

Drupal\audiofield\Plugin\AudioPlayer
View source
class AudioJsAudioPlayer extends AudioFieldPluginBase {

  /**
   * {@inheritdoc}
   */
  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);
    }

    // Start building settings to pass to the javascript audio.js builder.
    $player_settings = [
      // Audio.js expects this as a 0 - 1 range.
      'volume' => $settings['audio_player_initial_volume'] / 10,
      'element' => '',
    ];

    // Create arrays to pass to the twig theme..
    $template_settings = $settings;

    // Format files for output.
    $template_files = $this
      ->getItemRenderList($items);
    foreach ($template_files as $renderInfo) {

      // Used to generate unique container.
      $player_settings['element'] = $template_settings['id'] = 'audiofield_audiojs_' . $renderInfo->id;
    }

    // If we have at least one audio file, we render.
    return [
      'audioplayer' => [
        '#theme' => 'audioplayer',
        '#plugin_id' => 'audiojs',
        '#settings' => $template_settings,
        '#files' => $template_files,
      ],
      'downloads' => $this
        ->createDownloadList($items, $settings),
      '#attached' => [
        'library' => [
          // Attach the audio.js library.
          'audiofield/audiofield.' . $this
            ->getPluginLibraryName(),
        ],
        'drupalSettings' => [
          'audiofieldaudiojs' => [
            $this
              ->getUniqueRenderId() => $player_settings,
          ],
        ],
      ],
    ];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AudioFieldPluginBase::$fileSystem protected property File System service.
AudioFieldPluginBase::$libraryDiscovery protected property Library discovery service.
AudioFieldPluginBase::$loggerFactory protected property Messenger service.
AudioFieldPluginBase::$messenger protected property Messenger service.
AudioFieldPluginBase::checkInstalled public function Checks to see if this audio plugin has been properly installed. 1
AudioFieldPluginBase::checkVersion public function Checks to see if this audio plugin version is up to date.
AudioFieldPluginBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 1
AudioFieldPluginBase::createDownloadList public function Used to render list of downloads as an item list.
AudioFieldPluginBase::getAudioDescription private function Get a title description from an audiofield entity.
AudioFieldPluginBase::getAudioRenderInfo public function Get required rendering information from an entity.
AudioFieldPluginBase::getAudioSource private function Get source URL from an audiofield entity.
AudioFieldPluginBase::getClassType protected function Get the class type for an entity.
AudioFieldPluginBase::getFiletype private function Get the filetype for an item.
AudioFieldPluginBase::getItemRenderList public function Used to format file entities for use in the twig themes.
AudioFieldPluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginBase::getPluginDefinition
AudioFieldPluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginBase::getPluginId
AudioFieldPluginBase::getPluginLibrary public function Gets the main library instance of this plugin.
AudioFieldPluginBase::getPluginLibraryName public function Gets the name of the main library of the plugin instance.
AudioFieldPluginBase::getPluginLibraryPath public function Gets the location of this plugin's library installation.
AudioFieldPluginBase::getPluginLibraryVersion public function Parses library to get version number of installed library. 6
AudioFieldPluginBase::getPluginRemoteSource public function Gets the remote download source from the plugin's main library.
AudioFieldPluginBase::getPluginTitle public function Gets the title of the plugin instance.
AudioFieldPluginBase::getUniqueId private function Get a unique ID for an item.
AudioFieldPluginBase::getUniqueRenderId protected function Get a unique audofield ID.
AudioFieldPluginBase::loadFileFromItem private function Load a file from an audio file entity.
AudioFieldPluginBase::renderDefaultPlayer public function Used to render a default player (for fallback).
AudioFieldPluginBase::showInstallError public function Shows library installation errors for in-use libraries.
AudioFieldPluginBase::validateEntityAgainstPlayer protected function Validate that this entity will work with this player.
AudioFieldPluginBase::validateFileAgainstPlayer private function Validate that a file entity will work with this player.
AudioFieldPluginBase::validateLinkAgainstPlayer private function Validate that a link entity will work with this player.
AudioFieldPluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct 1
AudioJsAudioPlayer::renderPlayer public function Renders the player. Overrides AudioFieldPluginBase::renderPlayer
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.