コード例 #1
0
ファイル: PicTest.php プロジェクト: bmartinezteltek/PuMuKIT2
 public function testGetterAndSetter()
 {
     $tags = array('tag_a', 'tag_b');
     $url = '/mnt/video/123/23435.mp4';
     $path = '/mnt/video/123/23435.mp4';
     $mime = 'image/jpg';
     $size = 3456;
     $width = 800;
     $height = 600;
     $hide = true;
     // Change assertTrue accordingly.
     $pic = new Pic();
     $pic->setTags($tags);
     $pic->setUrl($url);
     $pic->setPath($path);
     $pic->setMimeType($mime);
     $pic->setSize($size);
     $pic->setWidth($width);
     $pic->setHeight($height);
     $pic->setHide($hide);
     $this->assertEquals($tags, $pic->getTags());
     $this->assertEquals($url, $pic->getUrl());
     $this->assertEquals($path, $pic->getPath());
     $this->assertEquals($mime, $pic->getMimeType());
     $this->assertEquals($size, $pic->getSize());
     $this->assertEquals($width, $pic->getWidth());
     $this->assertEquals($height, $pic->getHeight());
     $this->assertTrue($pic->getHide());
 }
コード例 #2
0
 public function importRecording($opencastId, $invert = false)
 {
     $mediaPackage = $this->opencastClient->getMediaPackage($opencastId);
     $seriesRepo = $this->dm->getRepository('PumukitSchemaBundle:Series');
     if (isset($mediaPackage["series"])) {
         $series = $seriesRepo->findOneBy(array("properties.opencast" => $mediaPackage["series"]));
     } else {
         $series = $seriesRepo->findOneBy(array("properties.opencast" => "default"));
     }
     if (!$series) {
         $series = $this->importSeries($mediaPackage);
     }
     $multimediaobjectsRepo = $this->dm->getRepository('PumukitSchemaBundle:MultimediaObject');
     $onemultimediaobjects = $multimediaobjectsRepo->findOneBy(array("properties.opencast" => $mediaPackage["id"]));
     if ($onemultimediaobjects == null) {
         $title = $mediaPackage["title"];
         $properties = $mediaPackage["id"];
         $recDate = $mediaPackage["start"];
         $multimediaObject = $this->factoryService->createMultimediaObject($series);
         $multimediaObject->setSeries($series);
         $multimediaObject->setRecordDate($recDate);
         $multimediaObject->setProperty("opencast", $properties);
         $multimediaObject->setProperty("opencastinvert", boolval($invert));
         $multimediaObject->setProperty("opencasturl", $this->opencastClient->getPlayerUrl() . "?id=" . $properties);
         $multimediaObject->setTitle($title);
         if (isset($mediaPackage["language"])) {
             $multimediaObject->setProperty("opencastlanguage", strtolower($mediaPackage["language"]));
         } else {
             $multimediaObject->setProperty("opencastlanguage", 'en');
         }
         foreach ($this->otherLocales as $locale) {
             $multimediaObject->setTitle($title, $locale);
         }
         //Multiple tracks
         if (isset($mediaPackage["media"]["track"][0])) {
             for ($i = 0; $i < count($mediaPackage["media"]["track"]); $i++) {
                 $tags = $mediaPackage["media"]["track"][$i]["tags"];
                 $url = $mediaPackage["media"]["track"][$i]["url"];
                 $mime = $mediaPackage["media"]["track"][$i]["mimetype"];
                 $duration = $mediaPackage["media"]["track"][$i]["duration"];
                 $track = new Track();
                 if (isset($mediapackage["media"]["track"][$i]["audio"])) {
                     $acodec = $mediaPackage["media"]["track"][$i]["audio"]["encoder"]["type"];
                     $track->setAcodec($acodec);
                 }
                 if (isset($mediaPackage["language"])) {
                     $track->setLanguage(strtolower($mediaPackage["language"]));
                 }
                 if (isset($mediaPackage["media"]["track"][$i]["video"])) {
                     $vcodec = $mediaPackage["media"]["track"][$i]["video"]["encoder"]["type"];
                     $track->setVcodec($vcodec);
                     $framerate = $mediaPackage["media"]["track"][$i]["video"]["framerate"];
                     $track->setFramerate($framerate);
                 }
                 if (!$track->getVcodec() && $track->getAcodec()) {
                     $track->setOnlyAudio(true);
                 }
                 $track->addTag("opencast");
                 $track->addTag($mediaPackage["media"]["track"][$i]["type"]);
                 $track->setUrl($url);
                 $track->setPath($this->opencastService->getPath($url));
                 $track->setMimeType($mime);
                 $track->setDuration($duration / 1000);
                 $this->inspectionService->autocompleteTrack($track);
                 $multimediaObject->setDuration($track->getDuration());
                 $multimediaObject->addTrack($track);
             }
         } else {
             $tags = $mediaPackage["media"]["track"]["tags"];
             $url = $mediaPackage["media"]["track"]["url"];
             $mime = $mediaPackage["media"]["track"]["mimetype"];
             $duration = $mediaPackage["media"]["track"]["duration"];
             $track = new Track();
             if (isset($mediapackage["media"]["track"]["audio"])) {
                 $acodec = $mediaPackage["media"]["track"]["audio"]["encoder"]["type"];
                 $track->setAcodec($acodec);
             }
             if (isset($mediaPackage["media"]["track"]["video"])) {
                 $vcodec = $mediaPackage["media"]["track"]["video"]["encoder"]["type"];
                 $track->setVcodec($vcodec);
                 $framerate = $mediaPackage["media"]["track"]["video"]["framerate"];
                 $track->setFramerate($framerate);
             }
             if (!$track->getVcodec() && $track->getAcodec()) {
                 $track->setOnlyAudio(true);
             }
             $track->addTag("opencast");
             $track->addTag($mediaPackage["media"]["track"]["type"]);
             $track->setUrl($url);
             $track->setPath($this->opencastService->getPath($url));
             $track->setMimeType($mime);
             $track->setDuration($duration / 1000);
             $this->inspectionService->autocompleteTrack($track);
             $multimediaObject->setDuration($track->getDuration());
             $multimediaObject->addTrack($track);
         }
         for ($j = 0; $j < count($mediaPackage["attachments"]["attachment"]); $j++) {
             if (isset($mediaPackage["attachments"]["attachment"][$j]["type"])) {
                 if ($mediaPackage["attachments"]["attachment"][$j]["type"] == "presenter/search+preview") {
                     $tags = $mediaPackage["attachments"]["attachment"][$j]["tags"];
                     $url = $mediaPackage["attachments"]["attachment"][$j]["url"];
                     $pic = new Pic();
                     $pic->setTags(array($tags));
                     $pic->setUrl($url);
                     $multimediaObject->addPic($pic);
                 }
             }
         }
         $tagRepo = $this->dm->getRepository('PumukitSchemaBundle:Tag');
         $opencastTag = $tagRepo->findOneByCod('TECHOPENCAST');
         if ($opencastTag) {
             $tagService = $this->tagService;
             $tagAdded = $tagService->addTagToMultimediaObject($multimediaObject, $opencastTag->getId());
         }
         $this->dm->persist($multimediaObject);
         $this->dm->flush();
         if ($track) {
             $opencastUrls = $this->getOpencastUrls($opencastId);
             $this->opencastService->genSbs($multimediaObject, $opencastUrls);
         }
     }
 }
コード例 #3
0
 public function testGetPicsWithTag()
 {
     $mm = new MultimediaObject();
     $p1 = new Pic();
     $p1->setTags(array('master'));
     $p2 = new Pic();
     $p2->setTags(array('master', 'mosca', 'old'));
     $p3 = new Pic();
     $p3->setTags(array('master', 'mosca'));
     $p4 = new Pic();
     $p4->setTags(array('flv', 'itunes', 'hide'));
     $p5 = new Pic();
     $p5->setTags(array('flv', 'webtv'));
     $mm->addPic($p3);
     $mm->addPic($p2);
     $mm->addPic($p1);
     $mm->addPic($p4);
     $mm->addPic($p5);
     $this->assertEquals(array($p3, $p2, $p1), $mm->getPicsWithTag('master'));
     $this->assertEquals($p3, $mm->getPicWithTag('master'));
     $this->assertEquals(null, $mm->getPicWithTag('del_universo'));
     $this->assertEquals($p3, $mm->getPicWithAnyTag(array('master', 'pr')));
     $this->assertEquals(array($p2), $mm->getPicsWithAllTags(array('master', 'mosca', 'old')));
     $this->assertTrue(in_array($mm->getPicWithAllTags(array('mosca', 'master')), array($p3, $p2)));
     $this->assertEquals(null, $mm->getPicWithAllTags(array('mosca', 'master', 'del_universo')));
     $this->assertEquals(4, count($mm->getPicsWithAnyTag(array('master', 'webtv'))));
     $this->assertEquals(1, count($mm->getPicWithAnyTag(array('master'))));
     $this->assertEquals(null, $mm->getPicWithAnyTag(array('del_universo')));
     $this->assertEquals(5, count($mm->getFilteredPicsWithTags()));
     $this->assertEquals(3, count($mm->getFilteredPicsWithTags(array('master'))));
     $this->assertEquals(1, count($mm->getFilteredPicsWithTags(array('master'), array('mosca', 'old'))));
     $this->assertEquals(0, count($mm->getFilteredPicsWithTags(array(), array('mosca', 'old'), array('master'))));
     $this->assertEquals(3, count($mm->getFilteredPicsWithTags(array(), array(), array('flv'))));
     $this->assertEquals(0, count($mm->getFilteredPicsWithTags(array(), array(), array('flv', 'master'))));
     $this->assertEquals(5, count($mm->getFilteredPicsWithTags(array(), array(), array(), array('flv', 'master'))));
     $this->assertEquals(1, count($mm->getFilteredPicsWithTags(array('mosca', 'old'), array(), array(), array('old'))));
 }