src/Biz/Player/Service/Impl/PlayerServiceImpl.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Player\Service\Impl;
use AppBundle\Common\ArrayToolkit;
use Biz\BaseService;
use Biz\File\Service\FileImplementor;
use Biz\File\Service\UploadFileService;
use Biz\MaterialLib\Service\MaterialLibService;
use Biz\Player\PlayerException;
use Biz\Player\Service\PlayerService;
use Biz\System\Service\SettingService;
use Biz\User\Service\TokenService;
class PlayerServiceImpl extends BaseService implements PlayerService
{
public function getAudioAndVideoPlayerType($file)
{
switch ($file['type']) {
case 'audio':
return 'audio-player';
case 'video':
return 'local' == $file['storage'] ? 'local-video-player' : 'balloon-cloud-video-player';
default:
return null;
}
}
public function agentInWhiteList($userAgent)
{
$whiteList = array('iPhone', 'iPad', 'Android', 'HTC');
return ArrayToolkit::some($whiteList, function ($agent) use ($userAgent) {
return strpos($userAgent, $agent) > -1;
});
}
public function getVideoFilePlayer($file, $agentInWhiteList, $context, $ssl)
{
$storageSetting = $this->getSettingService()->get('storage');
$isEncryptionPlus = isset($storageSetting['enable_hls_encryption_plus']) && (bool) $storageSetting['enable_hls_encryption_plus'];
if (!$this->isHiddenVideoHeader()) {
// 加入片头信息
$videoHeaderFile = $this->getUploadFileService()->getFileByTargetType('headLeader');
if (!empty($videoHeaderFile) && 'success' == $videoHeaderFile['convertStatus']) {
$context['videoHeaderLength'] = $videoHeaderFile['length'];
}
}
if (!empty($file['convertParams']['hasVideoWatermark'])) {
$file['videoWatermarkEmbedded'] = 1;
}
$result = $this->getMaterialLibService()->player($file['globalId'], $ssl);
if (isset($result['subtitles'])) {
$this->filterSubtitles($result['subtitles']);
$context['subtitles'] = $result['subtitles'];
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。