Esempio n. 1
0
 /**
  * Get first url pic
  *
  * Get the first url pic of a document,
  * if none is found, returns the default
  * url pic for a given resource checking if
  * it is Series, MultimediaObject of type
  * video or audio
  *
  * @param Series|MultimediaObject $object   Object to get the url (using $object->getPics())
  * @param boolean                 $absolute Returns absolute path
  * @param boolean                 $hd       Returns pic in HD
  *
  * @return string
  */
 public function getFirstUrlPic($object, $absolute = false, $hd = true)
 {
     $pics = $object->getPics();
     if (0 === count($pics)) {
         return $this->getDefaultUrlPicForObject($object, $absolute, $hd);
     } else {
         foreach ($pics as $pic) {
             if ($picUrl = $pic->getUrl()) {
                 break;
             }
         }
     }
     if ($absolute) {
         return $this->getAbsoluteUrlPic($picUrl);
     }
     return $picUrl;
 }
 private function generatePic(MultimediaObject $multimediaObject, Track $track)
 {
     if ($multimediaObject->getPics()->isEmpty() && $this->autoExtractPic) {
         try {
             if ($multimediaObject->isOnlyAudio() || $track->isOnlyAudio()) {
                 // TODO: Change return values when adding final default audio image
                 //return $this->addDefaultAudioPic($multimediaObject, $track);
                 return false;
             } else {
                 return $this->generatePicFromVideo($multimediaObject, $track);
             }
         } catch (\Exception $e) {
             $this->logger->error(__CLASS__ . '[' . __FUNCTION__ . '] ' . 'There was an error in extracting a pic for MultimediaObject "' . $multimediaObject->getId() . '" from Track "' . $track->getId() . '". Error message: ' . $e->getMessage());
             return false;
         }
     }
     return false;
 }
 /**
  * Extract Pic
  *
  * @param MultimediaObject $multimediaObject
  * @param Track $track
  * @param integer $numframe
  * @return string $message
  */
 public function extractPic(MultimediaObject $multimediaObject, Track $track, $numframe)
 {
     if (!file_exists($track->getPath())) {
         return "Error in data autocomplete of multimedia object.";
     }
     if (false !== strpos($track->getFramerate(), '/')) {
         $aux = explode('/', $track->getFramerate());
         $num_frames = intval($track->getDuration() * intval($aux[0]) / intval($aux[1]));
     } else {
         $num_frames = intval($track->getFramerate() * $track->getDuration());
     }
     if (is_null($numframe) || $num_frames == 0) {
         $num = 125 * count($multimediaObject->getPics()) + 1;
     } elseif (substr($numframe, -1, 1) === '%') {
         $num = intval($numframe) * $num_frames / 100;
     } else {
         $num = intval($numframe);
     }
     $this->createPic($multimediaObject, $track, $num);
     return "Captured the FRAME " . $num . " as image.";
 }
 public function testPicsInMultimediaObject()
 {
     $mm = new MultimediaObject();
     $pic1 = new Pic();
     $pic2 = new Pic();
     $pic3 = new Pic();
     $pic4 = new Pic();
     $pic4->setUrl("/url/of/pic4");
     $this->assertEquals(0, count($mm->getPics()));
     $mm->addPic($pic1);
     $mm->addPic($pic2);
     $mm->addPic($pic3);
     $this->assertEquals(3, count($mm->getPics()));
     $picsArray = array($pic1, $pic2, $pic3);
     $this->assertEquals($picsArray, $mm->getPics()->toArray());
     $mm->removePic($pic2);
     $this->assertEquals(2, count($mm->getPics()));
     $this->assertTrue($mm->containsPic($pic1));
     $this->assertFalse($mm->containsPic($pic2));
     $picsArray = array(0 => $pic1, 2 => $pic3);
     $this->assertEquals($picsArray, $mm->getPics()->toArray());
     $this->assertEquals($pic1, $mm->getPic());
     $mm->addPic($pic4);
     $this->assertEquals("/url/of/pic4", $mm->getFirstUrlPic());
 }
 public function syncThumbnail(MultimediaObject $mmobj, $parsedTerena)
 {
     $url = $parsedTerena['thumbnail'];
     $pics = $mmobj->getPics();
     if (0 === count($pics)) {
         $mmobj = $this->mmsPicService->addPicUrl($mmobj, $url, false);
     } else {
         foreach ($pics as $pic) {
             break;
         }
         //Woraround to get the first element.
         $pic->setUrl($url);
         $this->dm->persist($pic);
     }
 }