コード例 #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
 /**
  * @ParamConverter("multimediaObject", class="PumukitSchemaBundle:MultimediaObject", options={"id" = "mmId"})
  */
 public function retranscodeAction(MultimediaObject $multimediaObject, Request $request)
 {
     $track = $multimediaObject->getTrackById($request->get('id'));
     $profile = $request->get('profile');
     $priority = 2;
     $trackService = $this->get('pumukitschema.track');
     $this->get('pumukitencoder.job')->addJob($track->getPath(), $profile, $priority, $multimediaObject, $track->getLanguage(), $track->getI18nDescription());
     return $this->redirect($this->generateUrl('pumukitnewadmin_track_list', array('id' => $multimediaObject->getId())));
 }
コード例 #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
 /**
  * Remove Track from Multimedia Object
  */
 public function removeTrackFromMultimediaObject(MultimediaObject $multimediaObject, $trackId)
 {
     $track = $multimediaObject->getTrackById($trackId);
     $trackPath = $track->getPath();
     $trackProfile = str_replace('profile:', '', preg_grep('/^profile:*/', $track->getTags())[0]);
     $isNotOpencast = !$track->containsTag('opencast');
     $multimediaObject->removeTrackById($trackId);
     $this->dm->persist($multimediaObject);
     $this->dm->flush();
     $relatedJob = $this->jobRepo->findOneBy(array('path_end' => $trackPath, 'mm_id' => $multimediaObject->getId()));
     if ($relatedJob) {
         $this->jobService->deleteJob($relatedJob->getId());
     }
     if ($this->forceDeleteOnDisk && $trackPath && $isNotOpencast) {
         $this->deleteFileOnDisk($trackPath);
     }
     return $multimediaObject;
 }