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