コード例 #1
0
 /**
  * @Route("/iframe/{id}", name="pumukit_webtv_multimediaobject_iframe")
  * @Template()
  */
 public function iframeAction(MultimediaObject $multimediaObject, Request $request)
 {
     $track = $request->query->has('track_id') ? $multimediaObject->getTrackById($request->query->get('track_id')) : $multimediaObject->getFilteredTrackWithTags(array('display'));
     if (!$track) {
         throw $this->createNotFoundException();
     }
     $response = $this->testBroadcast($multimediaObject, $request);
     if ($response instanceof Response) {
         return $response;
     }
     $this->incNumView($multimediaObject, $track);
     $this->dispatch($multimediaObject, $track);
     if ($track->containsTag("download")) {
         return $this->redirect($track->getUrl());
     }
     return array('autostart' => $request->query->get('autostart', 'true'), 'intro' => $this->getIntro($request->query->get('intro')), 'multimediaObject' => $multimediaObject, 'track' => $track);
 }
コード例 #2
0
 public function testGetTracksWithTag()
 {
     $mm = new MultimediaObject();
     $t1 = new Track();
     $t1->setTags(array('master'));
     $t2 = new Track();
     $t2->setTags(array('mosca', 'master', 'old'));
     $t3 = new Track();
     $t3->setTags(array('master', 'mosca'));
     $t4 = new Track();
     $t4->setTags(array('flv', 'itunes', 'hide'));
     $t5 = new Track();
     $t5->setTags(array('flv', 'webtv'));
     $mm->addTrack($t3);
     $mm->addTrack($t2);
     $mm->addTrack($t1);
     $mm->addTrack($t4);
     $mm->addTrack($t5);
     $this->assertEquals(array($t3, $t2, $t1), $mm->getTracksWithTag('master'));
     $this->assertEquals($t3, $mm->getTrackWithTag('master'));
     $this->assertEquals(null, $mm->getTrackWithTag('del_universo'));
     $this->assertEquals($t3, $mm->getTrackWithAnyTag(array('master', 'pr')));
     $this->assertEquals(array($t2), $mm->getTracksWithAllTags(array('master', 'mosca', 'old')));
     $this->assertTrue(in_array($mm->getTrackWithAllTags(array('mosca', 'master')), array($t3, $t2)));
     $this->assertEquals(null, $mm->getTrackWithAllTags(array('mosca', 'master', 'del_universo')));
     $this->assertEquals(4, count($mm->getTracksWithAnyTag(array('master', 'webtv'))));
     $this->assertEquals(1, count($mm->getTrackWithAnyTag(array('master'))));
     $this->assertEquals(null, $mm->getTrackWithAnyTag(array('del_universo')));
     $this->assertEquals(5, count($mm->getFilteredTracksWithTags()));
     $this->assertEquals(3, count($mm->getFilteredTracksWithTags(array('master'))));
     $this->assertEquals(1, count($mm->getFilteredTracksWithTags(array('master'), array('mosca', 'old'))));
     $this->assertEquals(0, count($mm->getFilteredTracksWithTags(array(), array('mosca', 'old'), array('master'))));
     $this->assertEquals(3, count($mm->getFilteredTracksWithTags(array(), array(), array('flv'))));
     $this->assertEquals(0, count($mm->getFilteredTracksWithTags(array(), array(), array('flv', 'master'))));
     $this->assertEquals(5, count($mm->getFilteredTracksWithTags(array(), array(), array(), array('flv', 'master'))));
     $this->assertEquals(1, count($mm->getFilteredTracksWithTags(array('mosca', 'old'), array(), array(), array('old'))));
     $this->assertEquals(1, count($mm->getFilteredTrackWithTags()));
     $this->assertEquals(1, count($mm->getFilteredTrackWithTags(array('master'))));
     $this->assertEquals(1, count($mm->getFilteredTrackWithTags(array('master'), array('mosca', 'old'))));
     $this->assertEquals(0, count($mm->getFilteredTrackWithTags(array(), array('mosca', 'old'), array('master'))));
     $this->assertEquals(1, count($mm->getFilteredTrackWithTags(array(), array(), array('flv'))));
     $this->assertEquals(0, count($mm->getFilteredTrackWithTags(array(), array(), array('flv', 'master'))));
     $this->assertEquals(1, count($mm->getFilteredTrackWithTags(array(), array(), array(), array('flv', 'master'))));
     $this->assertEquals(1, count($mm->getFilteredTrackWithTags(array('mosca', 'old'), array(), array(), array('old'))));
 }
コード例 #3
0
 /**
  * Render iframe
  */
 private function renderIframe(MultimediaObject $multimediaObject, Request $request)
 {
     if ($multimediaObject->getProperty('opencast')) {
         /* $this->incNumView($multimediaObject); */
         /* $this->dispatch($multimediaObject); */
         $userAgent = $this->getRequest()->headers->get('user-agent');
         $mobileDetectorService = $this->get('mobile_detect.mobile_detector');
         $mobileDevice = $mobileDetectorService->isMobile($userAgent) || $mobileDetectorService->isTablet($userAgent);
         $isOldBrowser = $this->getIsOldBrowser($userAgent);
         $track = $multimediaObject->getTrackWithTag('sbs');
         return $this->render("PumukitMoodleBundle:Moodle:opencastiframe.html.twig", array("multimediaObject" => $multimediaObject, "track" => $track, "is_old_browser" => $isOldBrowser, "mobile_device" => $mobileDevice));
     } else {
         $track = $request->query->has('track_id') ? $multimediaObject->getTrackById($request->query->get('track_id')) : $multimediaObject->getFilteredTrackWithTags(array('display'));
     }
     if (!$track) {
         throw $this->createNotFoundException();
     }
     //$this->incNumView($multimediaObject, $track);
     //$this->dispatch($multimediaObject, $track);
     return $this->render("PumukitMoodleBundle:Moodle:iframe.html.twig", array('autostart' => $request->query->get('autostart', 'false'), 'intro' => false, 'multimediaObject' => $multimediaObject, 'track' => $track));
 }
コード例 #4
0
 private function getAudioTrack(MultimediaObject $multimediaObject)
 {
     $audio_all_tags = array('podcast', 'audio');
     $audio_not_all_tags = array();
     return $multimediaObject->getFilteredTrackWithTags(array(), $audio_all_tags, array(), $audio_not_all_tags, false);
 }