Ejemplo n.º 1
0
 /**
  * Return all available metaData
  * @param MediaInformation $information
  * @return array
  */
 public function getMetaData(MediaInformation $information)
 {
     $subdef = $information->getResource();
     $record = $subdef->get_record();
     $thumbnail = $record->get_thumbnail();
     $request = $information->getResourceRequest();
     $baseUrl = $request->getSchemeAndHttpHost() . $request->getBasePath();
     $ogMetaData = [];
     $embedMedia = [];
     $oembedMetaData = [];
     $substitutionPath = sprintf('/assets/common/images/icons/substitution/%s.png', str_replace('/', '_', $record->getMimeType()));
     $resourceUrl = $information->getUrl();
     $embedMedia['title'] = $record->get_title();
     $embedMedia['url'] = $resourceUrl;
     switch ($record->getType()) {
         case 'video':
             $ogMetaData['og:type'] = 'video.other';
             $ogMetaData['og:image'] = $baseUrl . $thumbnail->get_url();
             $ogMetaData['og:image:width'] = $thumbnail->get_width();
             $ogMetaData['og:image:height'] = $thumbnail->get_height();
             $embedMedia['coverUrl'] = $baseUrl . $thumbnail->get_url();
             $embedMedia['source'] = [];
             $embedMedia['source'][] = ['url' => $resourceUrl, 'type' => $subdef->get_mime()];
             $embedMedia['dimensions'] = $this->getDimensions($subdef);
             $oembedMetaData['type'] = 'video';
             $oembedMetaData['html'] = sprintf('<iframe width="%d" height="%d" src="%s" frameborder="0" allowfullscreen></iframe>', $embedMedia['dimensions']['width'], $embedMedia['dimensions']['height'], $this->getEmbedUrl($resourceUrl));
             break;
         case 'flexpaper':
         case 'document':
             $ogMetaData['og:type'] = 'article';
             $ogMetaData['og:image'] = $baseUrl . $thumbnail->get_url();
             $ogMetaData['og:image:width'] = $thumbnail->get_width();
             $ogMetaData['og:image:height'] = $thumbnail->get_height();
             $oembedMetaData['type'] = 'link';
             $embedMedia['dimensions'] = $this->getDimensions($subdef);
             break;
         case 'audio':
             $ogMetaData['og:type'] = 'music.song';
             $ogMetaData['og:image'] = $baseUrl . $substitutionPath;
             $ogMetaData['og:image:width'] = $thumbnail->get_width();
             $ogMetaData['og:image:height'] = $thumbnail->get_height();
             $oembedMetaData['type'] = 'link';
             $embedMedia['source'] = [];
             $embedMedia['source'][] = ['url' => $resourceUrl, 'type' => $subdef->get_mime()];
             $embedMedia['coverUrl'] = $baseUrl . $substitutionPath;
             // set default dimension for player
             $embedMedia['dimensions'] = ['width' => 320, 'height' => 320, 'top' => 0];
             break;
         default:
             $oembedMetaData['type'] = 'photo';
             $ogMetaData['og:type'] = 'image';
             $ogMetaData['og:image'] = (string) $record->get_preview()->get_permalink()->get_url();
             $ogMetaData['og:image:width'] = $subdef->get_width();
             $ogMetaData['og:image:height'] = $subdef->get_height();
             $embedMedia['dimensions'] = $this->getDimensions($subdef);
             break;
     }
     return ['options' => ['autoplay' => false], 'oembedMetaData' => $oembedMetaData, 'ogMetaData' => $ogMetaData, 'embedMedia' => $embedMedia];
 }
Ejemplo n.º 2
0
 /**
  * Return all available metaData
  * @param MediaInformation $information
  * @return array
  */
 public function getMetaData(MediaInformation $information)
 {
     $subdef = $information->getResource();
     $record = $subdef->get_record();
     $thumbnail = $record->get_thumbnail();
     $request = $information->getResourceRequest();
     $baseUrl = $request->getSchemeAndHttpHost() . $request->getBasePath();
     $ogMetaData = [];
     $embedMedia = [];
     $oembedMetaData = [];
     $substitutionPath = sprintf('/assets/common/images/icons/substitution/%s.png', str_replace('/', '_', $record->getMimeType()));
     $resourceUrl = $information->getUrl();
     $embedMedia['title'] = $record->get_title();
     $embedMedia['url'] = $resourceUrl;
     switch ($record->getType()) {
         case 'video':
             $ogMetaData['og:type'] = 'video.other';
             $ogMetaData['og:image'] = $baseUrl . $thumbnail->get_url();
             $ogMetaData['og:image:width'] = $thumbnail->get_width();
             $ogMetaData['og:image:height'] = $thumbnail->get_height();
             $coverUrl = $baseUrl . $thumbnail->get_url();
             $embedConfig = $this->getEmbedConfiguration();
             // if user config has custom subdef specified:
             if (array_key_exists('video', $embedConfig)) {
                 if (array_key_exists('coverSubdef', $embedConfig['video'])) {
                     $customCoverName = $embedConfig['video']['coverSubdef'];
                     try {
                         $customCover = $record->get_subdef($customCoverName);
                         $coverUrl = $baseUrl . $customCover->get_url();
                     } catch (\Exception $e) {
                         // no existing custom cover
                     }
                 }
             }
             $embedMedia['coverUrl'] = $coverUrl;
             $embedMedia['source'] = [];
             $embedMedia['source'][] = ['url' => $resourceUrl, 'type' => $subdef->get_mime()];
             $embedMedia['track'] = $this->getAvailableVideoTextTracks($information);
             $embedMedia['dimensions'] = $this->getDimensions($subdef);
             $oembedMetaData['type'] = 'video';
             $oembedMetaData['html'] = sprintf('<iframe width="%d" height="%d" src="%s" frameborder="0" allowfullscreen></iframe>', $embedMedia['dimensions']['width'], $embedMedia['dimensions']['height'], $this->getEmbedUrl($resourceUrl));
             break;
         case 'flexpaper':
         case 'document':
             $ogMetaData['og:type'] = 'article';
             $ogMetaData['og:image'] = $baseUrl . $thumbnail->get_url();
             $ogMetaData['og:image:width'] = $thumbnail->get_width();
             $ogMetaData['og:image:height'] = $thumbnail->get_height();
             $oembedMetaData['type'] = 'link';
             $embedMedia['dimensions'] = $this->getDimensions($subdef);
             break;
         case 'audio':
             $ogMetaData['og:type'] = 'music.song';
             $ogMetaData['og:image'] = $baseUrl . $substitutionPath;
             $ogMetaData['og:image:width'] = $thumbnail->get_width();
             $ogMetaData['og:image:height'] = $thumbnail->get_height();
             $oembedMetaData['type'] = 'link';
             $embedMedia['source'] = [];
             $embedMedia['source'][] = ['url' => $resourceUrl, 'type' => $subdef->get_mime()];
             $embedMedia['coverUrl'] = $baseUrl . $substitutionPath;
             // set default dimension for player
             $embedMedia['dimensions'] = ['width' => 320, 'height' => 320, 'top' => 0];
             break;
         default:
             $oembedMetaData['type'] = 'photo';
             $ogMetaData['og:type'] = 'image';
             $ogMetaData['og:image'] = (string) $record->get_preview()->get_permalink()->get_url();
             $ogMetaData['og:image:width'] = $subdef->get_width();
             $ogMetaData['og:image:height'] = $subdef->get_height();
             $embedMedia['dimensions'] = $this->getDimensions($subdef);
             break;
     }
     return ['options' => ['autoplay' => false], 'oembedMetaData' => $oembedMetaData, 'ogMetaData' => $ogMetaData, 'embedMedia' => $embedMedia];
 }