public function createTrack(MultimediaObject $multimediaObject, $pathEnd, $profileName, $language = null, $description = array()) { $profile = $this->profileService->getProfile($profileName); $track = new Track(); $track->addTag('profile:' . $profileName); if ($profile['master']) { $track->addTag('master'); } if ($profile['display']) { $track->addTag('display'); } foreach (array_filter(preg_split('/[,\\s]+/', $profile['tags'])) as $tag) { $track->addTag(trim($tag)); } if (!empty($description)) { $track->setI18nDescription($description); } $track->setLanguage($language); $track->setPath($pathEnd); if (isset($profile['streamserver']['url_out'])) { $track->setUrl(str_replace(realpath($profile['streamserver']['dir_out']), $profile['streamserver']['url_out'], $pathEnd)); } $this->inspectionService->autocompleteTrack($track); $track->setOnlyAudio($track->getWidth() == 0); $track->setHide(!$profile['display']); $multimediaObject->setDuration($track->getDuration()); $multimediaObject->addTrack($track); $this->dm->persist($multimediaObject); $this->dm->flush(); return $track; }