/** * Init tracker if in exam mode * * @param \_OurBrand_\Quiz\Domain\Model\Exercise $exercise * * @return json */ public function getDictationAudioAction($exercise) { $audioFiles = array(); foreach ($exercise->getSnippets() as $snippet) { if ($snippet->getAudio() && $snippet->getAudio()->getOriginalResource()) { $audioFiles[] = array('src' => base64_encode($this->resourcePublisher->getPersistentResourceWebUri($snippet->getAudio()->getOriginalResource()))); } } if ($this->studentQuizSession) { $tracker = $this->trackStudentAudioPlaybackRepository->findBySessionAndExercise($this->studentQuizSession, $exercise)->getFirst(); if (!is_a($tracker, '\\_OurBrand_\\Quiz\\Domain\\Model\\TrackStudentAudioPlayback')) { $tracker = new TrackStudentAudioPlayback(); $tracker->setExercise($exercise); $tracker->setStudentQuizSession($this->studentQuizSession); $tracker->setTimeElapsed(0); $tracker->setStatus(0); $this->trackStudentAudioPlaybackRepository->add($tracker); $this->persistenceManager->persistAll(); } return json_encode(array('elapsedTime' => $tracker->getTimeElapsed(), 'status' => $tracker->getStatus(), 'trackerId' => $this->persistenceManager->getIdentifierByObject($tracker), 'audioFiles' => $audioFiles)); } return json_encode(array('status' => 0, 'audioFiles' => $audioFiles)); }