本文整理汇总了PHP中entry::getDuration方法的典型用法代码示例。如果您正苦于以下问题:PHP entry::getDuration方法的具体用法?PHP entry::getDuration怎么用?PHP entry::getDuration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类entry
的用法示例。
在下文中一共展示了entry::getDuration方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: selectDeliveryTypeForAuto
private function selectDeliveryTypeForAuto()
{
$enabledDeliveryTypes = $this->partner->getDeliveryTypes();
$deliveryType = null;
foreach ($enabledDeliveryTypes as $enabledDeliveryTypeKey => $values) {
if ($enabledDeliveryTypeKey == PlaybackProtocol::AUTO) {
unset($enabledDeliveryTypes[$enabledDeliveryTypeKey]);
} else {
if ($this->asset && $enabledDeliveryTypeKey == PlaybackProtocol::HTTP) {
$deliveryType = $enabledDeliveryTypes[$enabledDeliveryTypeKey];
}
}
}
if (!count($enabledDeliveryTypes)) {
KalturaLog::err('At least one non auto delivery type must be specified');
return array();
}
if (is_null($deliveryType)) {
$deliveryTypeKeys = array();
$deliveryTypeName = null;
if ($this->isSecured) {
$deliveryTypeKeys[] = 'secured_default_delivery_type';
}
if ($this->entry->getDuration() <= kConf::get('short_entries_max_duration')) {
$deliveryTypeKeys[] = 'short_entries_default_delivery_type';
}
$deliveryTypeKeys[] = 'default_delivery_type';
reset($enabledDeliveryTypes);
$deliveryTypeName = key($enabledDeliveryTypes);
foreach ($deliveryTypeKeys as $deliveryTypeKey) {
$deliveryTypesToValidate = kConf::get($deliveryTypeKey);
$deliveryTypesToValidate = explode(',', $deliveryTypesToValidate);
foreach ($deliveryTypesToValidate as $deliveryTypeToValidate) {
if (isset($enabledDeliveryTypes[$deliveryTypeToValidate])) {
$deliveryTypeName = $deliveryTypeToValidate;
//When match is found break this loop and outer loop as well (http://www.php.net/manual/en/control-structures.break.php)
break 2;
}
}
}
$deliveryType = $enabledDeliveryTypes[$deliveryTypeName];
}
return $deliveryType;
}
示例2: decideThumbGenerate
/**
* decideThumbGenerate is the decision layer for a single thumbnail generation
*
* @param entry $entry
* @param thumbParams $destThumbParams
* @param BatchJob $parentJob
* @return thumbAsset
*/
public static function decideThumbGenerate(entry $entry, thumbParams $destThumbParams, BatchJob $parentJob = null, $sourceAssetId = null, $runSync = false, $srcAsset = null)
{
if (is_null($srcAsset)) {
$srcAsset = self::getSourceAssetForGenerateThumbnail($sourceAssetId, $destThumbParams->getSourceParamsId(), $entry->getId());
if (is_null($srcAsset)) {
throw new APIException(APIErrors::FLAVOR_ASSET_IS_NOT_READY);
}
}
$errDescription = null;
$mediaInfo = mediaInfoPeer::retrieveByFlavorAssetId($srcAsset->getId());
$destThumbParamsOutput = self::validateThumbAndMediaInfo($destThumbParams, $mediaInfo, $errDescription);
if ($srcAsset->getType() == assetType::FLAVOR && is_null($destThumbParamsOutput->getVideoOffset())) {
$destThumbParamsOutput->setVideoOffset($entry->getThumbOffset());
}
$destThumbParamsOutput->setVideoOffset(min($destThumbParamsOutput->getVideoOffset(), $entry->getDuration()));
if (!$destThumbParamsOutput->getDensity()) {
$partner = $entry->getPartner();
if (!is_null($partner)) {
$destThumbParamsOutput->setDensity($partner->getDefThumbDensity());
}
}
$thumbAsset = assetPeer::retrieveByEntryIdAndParams($entry->getId(), $destThumbParams->getId());
if ($thumbAsset) {
$description = $thumbAsset->getDescription() . "\n" . $errDescription;
$thumbAsset->setDescription($description);
} else {
$thumbAsset = new thumbAsset();
$thumbAsset->setPartnerId($entry->getPartnerId());
$thumbAsset->setEntryId($entry->getId());
$thumbAsset->setDescription($errDescription);
$thumbAsset->setFlavorParamsId($destThumbParams->getId());
}
$thumbAsset->incrementVersion();
$thumbAsset->setTags($destThumbParamsOutput->getTags());
$thumbAsset->setFileExt($destThumbParamsOutput->getFileExt());
if ($thumbAsset->getStatus() != asset::ASSET_STATUS_READY) {
$thumbAsset->setStatus(asset::ASSET_STATUS_CONVERTING);
}
//Sets the default thumb if this the only default thumb
kBusinessPreConvertDL::setIsDefaultThumb($thumbAsset);
if (!$destThumbParamsOutput) {
$thumbAsset->setStatus(thumbAsset::FLAVOR_ASSET_STATUS_ERROR);
$thumbAsset->save();
return null;
}
$thumbAsset->save();
// save flavor params
$destThumbParamsOutput->setPartnerId($entry->getPartnerId());
$destThumbParamsOutput->setEntryId($entry->getId());
$destThumbParamsOutput->setFlavorAssetId($thumbAsset->getId());
$destThumbParamsOutput->setFlavorAssetVersion($thumbAsset->getVersion());
$destThumbParamsOutput->save();
$srcSyncKey = $srcAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
$srcAssetType = $srcAsset->getType();
if (!$runSync) {
$job = kJobsManager::addCapturaThumbJob($parentJob, $entry->getPartnerId(), $entry->getId(), $thumbAsset->getId(), $srcSyncKey, $srcAsset->getId(), $srcAssetType, $destThumbParamsOutput);
return $thumbAsset;
}
$errDescription = null;
// Since this method is called when trying to crop an existing thumbnail, need to add this check - thumbAssets have no mediaInfo.
$capturedPath = self::generateThumbnail($srcAsset, $destThumbParamsOutput, $errDescription, $mediaInfo ? $mediaInfo->getVideoRotation() : null);
// failed
if (!$capturedPath) {
$thumbAsset->incrementVersion();
$thumbAsset->setStatus(thumbAsset::FLAVOR_ASSET_STATUS_ERROR);
$thumbAsset->setDescription($thumbAsset->getDescription() . "\n{$errDescription}");
$thumbAsset->save();
return $thumbAsset;
}
$thumbAsset->incrementVersion();
$thumbAsset->setStatus(thumbAsset::FLAVOR_ASSET_STATUS_READY);
if (file_exists($capturedPath)) {
list($width, $height, $type, $attr) = getimagesize($capturedPath);
$thumbAsset->setWidth($width);
$thumbAsset->setHeight($height);
$thumbAsset->setSize(filesize($capturedPath));
}
$logPath = $capturedPath . '.log';
if (file_exists($logPath)) {
$thumbAsset->incLogFileVersion();
$thumbAsset->save();
// creats the file sync
$logSyncKey = $thumbAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_CONVERT_LOG);
kFileSyncUtils::moveFromFile($logPath, $logSyncKey);
KalturaLog::debug("Log archived file to: " . kFileSyncUtils::getLocalFilePathForKey($logSyncKey));
} else {
$thumbAsset->save();
}
$syncKey = $thumbAsset->getSyncKey(thumbAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET);
kFileSyncUtils::moveFromFile($capturedPath, $syncKey);
KalturaLog::debug("Thumbnail archived file to: " . kFileSyncUtils::getLocalFilePathForKey($syncKey));
if ($thumbAsset->hasTag(thumbParams::TAG_DEFAULT_THUMB)) {
//.........这里部分代码省略.........
示例3: __construct
/**
* @param string $templateName
* @param KalturaQuickPlayDistributionProfile $distributionProfile
* @param KalturaQuickPlayDistributionJobProviderData $providerData
*/
public function __construct(KalturaDistributionJobData $distributionJobData, KalturaQuickPlayDistributionJobProviderData $providerData, array $flavorAssets, array $thumbnailAssets, entry $entry)
{
$this->_distributionJobData = $distributionJobData;
$this->_distributionProfile = $distributionJobData->distributionProfile;
$this->_providerData = $providerData;
$xmlTemplate = realpath(dirname(__FILE__) . '/../') . '/xml/' . self::TEMPLATE_XML;
$this->_doc = new KDOMDocument();
$this->_doc->load($xmlTemplate);
$this->_xpath = new DOMXPath($this->_doc);
$this->_xpath->registerNamespace('qpm', 'http://www.quickplaymedia.com');
// enclosure node template
$node = $this->_xpath->query('//qpm:enclosure', $this->_doc->firstChild)->item(0);
$this->_enclosureNode = $node->cloneNode(true);
$node->parentNode->removeChild($node);
$this->_fieldValues = unserialize($this->_providerData->fieldValues);
if (!$this->_fieldValues) {
$this->_fieldValues = array();
}
kXml::setNodeValue($this->_xpath, '/rss/channel/title', $this->_distributionProfile->channelTitle);
kXml::setNodeValue($this->_xpath, '/rss/channel/link', $this->_distributionProfile->channelLink);
kXml::setNodeValue($this->_xpath, '/rss/channel/description', $this->_distributionProfile->channelDescription);
kXml::setNodeValue($this->_xpath, '/rss/channel/managingEditor', $this->_distributionProfile->channelManagingEditor);
kXml::setNodeValue($this->_xpath, '/rss/channel/language', $this->_distributionProfile->channelLanguage);
kXml::setNodeValue($this->_xpath, '/rss/channel/image/title', $this->_distributionProfile->channelImageTitle);
kXml::setNodeValue($this->_xpath, '/rss/channel/image/width', $this->_distributionProfile->channelImageWidth);
kXml::setNodeValue($this->_xpath, '/rss/channel/image/height', $this->_distributionProfile->channelImageHeight);
kXml::setNodeValue($this->_xpath, '/rss/channel/image/link', $this->_distributionProfile->channelImageLink);
kXml::setNodeValue($this->_xpath, '/rss/channel/image/url', $this->_distributionProfile->channelImageUrl);
kXml::setNodeValue($this->_xpath, '/rss/channel/copyright', $this->_distributionProfile->channelCopyright);
$this->setNodeValueDateFieldConfigId('/rss/channel/pubDate', KalturaQuickPlayDistributionField::PUB_DATE);
$this->setNodeValueDate('/rss/channel/lastBuildDate', time());
kXml::setNodeValue($this->_xpath, '/rss/channel/generator', $this->_distributionProfile->channelGenerator);
kXml::setNodeValue($this->_xpath, '/rss/channel/rating', $this->_distributionProfile->channelRating);
kXml::setNodeValue($this->_xpath, '/rss/channel/language', $this->_distributionProfile->channelLanguage);
$this->setNodeValueFieldConfigId('/rss/channel/item/title', KalturaQuickPlayDistributionField::TITLE);
$this->setNodeValueFieldConfigId('/rss/channel/item/description', KalturaQuickPlayDistributionField::DESCRIPTION);
$this->setNodeValueFieldConfigId('/rss/channel/item/guid', KalturaQuickPlayDistributionField::GUID);
$this->setNodeValueFieldConfigId('/rss/channel/item/category', KalturaQuickPlayDistributionField::CATEGORY);
$this->setNodeValueDateFieldConfigId('/rss/channel/item/pubDate', KalturaQuickPlayDistributionField::PUB_DATE);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:keywords', KalturaQuickPlayDistributionField::QPM_KEYWORDS);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:priceID', KalturaQuickPlayDistributionField::QPM_PRICE_ID);
$this->setNodeValueDateFieldConfigId('/rss/channel/item/qpm:updateDate', KalturaQuickPlayDistributionField::QPM_UPDATE_DATE);
$this->setNodeValueDateFieldConfigId('/rss/channel/item/qpm:expiryDate', KalturaQuickPlayDistributionField::QPM_EXPIRY_DATE);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:sortOrder', KalturaQuickPlayDistributionField::QPM_SORT_ORDER);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:genre', KalturaQuickPlayDistributionField::QPM_GENRE);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:copyright', KalturaQuickPlayDistributionField::QPM_COPYRIGHT);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:artist', KalturaQuickPlayDistributionField::QPM_ARTIST);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:director', KalturaQuickPlayDistributionField::QPM_DIRECTOR);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:producer', KalturaQuickPlayDistributionField::QPM_PRODUCER);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:expDatePadding', KalturaQuickPlayDistributionField::QPM_EXP_DATE_PADDING);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:onDeviceExpirationPadding', KalturaQuickPlayDistributionField::QPM_ON_DEVICE_EXPIRATION_PADDING);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:onDeviceExpiration', KalturaQuickPlayDistributionField::QPM_ON_DEVICE_EXPIRATION);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:groupCategory', KalturaQuickPlayDistributionField::QPM_GROUP_CATEGORY);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:notes', KalturaQuickPlayDistributionField::QPM_NOTES);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:rating/@scheme', KalturaQuickPlayDistributionField::QPM_RATING_SCHEMA);
$this->setNodeValueFieldConfigId('/rss/channel/item/qpm:rating/@value', KalturaQuickPlayDistributionField::QPM_RATING);
$this->removeNodeIfEmpty('/rss/channel/generator');
$this->removeNodeIfEmpty('/rss/channel/rating');
$this->removeNodeIfEmpty('/rss/channel/item/qpm:artist');
$this->removeNodeIfEmpty('/rss/channel/item/qpm:director');
$this->removeNodeIfEmpty('/rss/channel/item/qpm:producer');
$this->removeNodeIfEmpty('/rss/channel/item/qpm:expDatePadding');
$this->removeNodeIfEmpty('/rss/channel/item/qpm:onDeviceExpirationPadding');
$this->removeNodeIfEmpty('/rss/channel/item/qpm:onDeviceExpiration');
$this->removeNodeIfEmpty('/rss/channel/item/qpm:groupCategory');
foreach ($thumbnailAssets as $thumbnailAsset) {
$encodingProfile = $thumbnailAsset->getWidth() . 'x' . $thumbnailAsset->getHeight();
$this->_enclosuresXmls[] = $this->createEnclosureXml($thumbnailAsset, 'thumbnail', $encodingProfile, '0');
}
foreach ($flavorAssets as $flavorAsset) {
if ($flavorAsset->getFlavorParams()) {
$encodingProfile = $flavorAsset->getFlavorParams()->getName();
} else {
$encodingProfile = 'Unknown';
}
$this->_enclosuresXmls[] = $this->createEnclosureXml($flavorAsset, 'content', $encodingProfile, round($entry->getDuration()));
}
}
示例4: getItem
/**
* @param array $values
* @param array $flavorAssets
* @param array $thumbAssets
*/
public function getItem(array $values, entry $entry, array $flavorAssets = null, array $thumbAssets = null, array $additionalAssets = null)
{
$item = $this->item->cloneNode(true);
kXml::setNodeValue($this->xpath, 'atom:title', $values[SynacorHboDistributionField::ENTRY_TITLE], $item);
kXml::setNodeValue($this->xpath, 'atom:summary', $values[SynacorHboDistributionField::ENTRY_SUMMARY], $item);
$updatedTime = $this->formatSynacorHboTime($values[SynacorHboDistributionField::ENTRY_UPDATED]);
kXml::setNodeValue($this->xpath, 'atom:updated', $updatedTime, $item);
kXml::setNodeValue($this->xpath, 'atom:author/atom:name', $values[SynacorHboDistributionField::ENTRY_AUTHOR_NAME], $item);
$categoryValue = $values[SynacorHboDistributionField::ENTRY_CATEGORY_TERM];
if (strlen($categoryValue) > 0) {
kXml::setNodeValue($this->xpath, 'atom:category/@term', $categoryValue, $item);
} else {
$this->removeNode('atom:category', $item);
}
$genreValue = $values[SynacorHboDistributionField::ENTRY_GENRE_TERM];
if (strlen($genreValue) > 0) {
kXml::setNodeValue($this->xpath, 'atom:genre/@term', $genreValue, $item);
} else {
$this->removeNode('atom:genre', $item);
}
kXml::setNodeValue($this->xpath, 'atom:assetType', $values[SynacorHboDistributionField::ENTRY_ASSET_TYPE], $item);
kXml::setNodeValue($this->xpath, 'atom:assetId', $values[SynacorHboDistributionField::ENTRY_ASSET_ID], $item);
$startTime = $this->formatSynacorHboTime($values[SynacorHboDistributionField::ENTRY_OFFERING_START]);
kXml::setNodeValue($this->xpath, 'atom:offering/atom:start', $startTime, $item);
$endTime = $this->formatSynacorHboTime($values[SynacorHboDistributionField::ENTRY_OFFERING_END]);
kXml::setNodeValue($this->xpath, 'atom:offering/atom:end', $endTime, $item);
$ratingValue = $values[SynacorHboDistributionField::ENTRY_RATING];
if (strlen($ratingValue) > 0) {
kXml::setNodeValue($this->xpath, 'atom:rating', $ratingValue, $item);
$ratingType = stripos($ratingValue, 'tv') === '0' ? 'tv' : 'theatrical';
kXml::setNodeValue($this->xpath, 'atom:rating/@type', $ratingType, $item);
} else {
$this->removeNode('atom:rating', $item);
}
$durationInSeconds = ceil($entry->getDuration());
$durationInMinuesRoundedUp = ceil($durationInSeconds / 60);
kXml::setNodeValue($this->xpath, 'atom:runtime', $durationInMinuesRoundedUp, $item);
kXml::setNodeValue($this->xpath, 'atom:runtime/@timeInSeconds', $durationInSeconds, $item);
kXml::setNodeValue($this->xpath, 'go:series/go:title', $values[SynacorHboDistributionField::ENTRY_SERIES_TITLE], $item);
kXml::setNodeValue($this->xpath, 'atom:brand', $values[SynacorHboDistributionField::ENTRY_BRAND], $item);
if (!is_null($flavorAssets) && is_array($flavorAssets) && count($flavorAssets) > 0) {
$flavorAsset = $flavorAssets[0];
/* @var $flavorAsset flavorAsset */
$flavorUrl = $this->getAssetUrl($flavorAsset);
// we don't have a way to identify the mime type of the file
// as there is no guarantee that the file exists in the current data center
// so we will just use those hardcoded conditions
$mimeType = '';
switch ($flavorAsset->getFileExt()) {
case 'flv':
$mimeType = 'video/x-flv';
break;
case 'mp4':
$mimeType = 'video/mp4';
break;
case 'mpeg':
case 'mpg':
$mimeType = 'video/mpeg';
break;
default:
$mimeType = 'video/x-flv';
// default requested by synacor
}
kXml::setNodeValue($this->xpath, 'atom:link[@type=\'VIDEO_MIME_TYPE\']/@href', $flavorUrl, $item);
kXml::setNodeValue($this->xpath, 'atom:link[@type=\'VIDEO_MIME_TYPE\']/@type', $mimeType, $item);
}
if (!is_null($thumbAssets) && is_array($thumbAssets) && count($thumbAssets) > 0) {
$thumbAsset = $thumbAssets[0];
/* @var $thumbAssets thumbAssets */
$thumbUrl = $this->getAssetUrl($thumbAsset);
kXml::setNodeValue($this->xpath, 'atom:link[@type=\'image/jpeg\']/@href', $thumbUrl, $item);
}
if (is_array($additionalAssets)) {
foreach ($additionalAssets as $additionalAsset) {
/* @var $additionalAsset asset */
$assetType = $additionalAsset->getType();
switch ($assetType) {
case CaptionPlugin::getAssetTypeCoreValue(CaptionAssetType::CAPTION):
/* @var $captionPlugin CaptionPlugin */
$captionPlugin = KalturaPluginManager::getPluginInstance(CaptionPlugin::PLUGIN_NAME);
$dummyElement = new SimpleXMLElement('<dummy/>');
$captionPlugin->contributeCaptionAssets($additionalAsset, $dummyElement);
$dummyDom = dom_import_simplexml($dummyElement);
$captionDom = $dummyDom->getElementsByTagName('subTitle');
$captionDom = $this->doc->importNode($captionDom->item(0), true);
$captionDom = $item->appendChild($captionDom);
break;
case AttachmentPlugin::getAssetTypeCoreValue(AttachmentAssetType::ATTACHMENT):
/* @var $attachmentPlugin AttachmentPlugin */
$attachmentPlugin = KalturaPluginManager::getPluginInstance(AttachmentPlugin::PLUGIN_NAME);
$dummyElement = new SimpleXMLElement('<dummy/>');
$attachmentPlugin->contributeAttachmentAssets($additionalAsset, $dummyElement);
$dummyDom = dom_import_simplexml($dummyElement);
$attachmentDom = $dummyDom->getElementsByTagName('attachment');
$attachmentDom = $this->doc->importNode($attachmentDom->item(0), true);
//.........这里部分代码省略.........