EduSoho 本地播放视频超时或者快进后网络错误导致视频下载中途失败。鉴权播放次数问题!!!
理解:播放器会对本地视频在数据丢失时进行数据获取,每次消耗一次鉴权次数,次数为0是会出现播放出错的问题。
解决:因此修改这个次数即可,这里的代码没有做细致研究,可能存在错误。
还是推荐大家使用云视频,如果需要阿里云、腾讯云视频点播的。
一共修改2个文件。
文件:src/Biz/Player/Service/Impl/PlayerServiceImpl.php
函数:protected function makeToken($type, $fileId, $context = array())
protected function makeToken($type, $fileId, $context = array())
{
$fields = array(
'data' => array(
'id' => $fileId,
),
'times' => 10, // 修改这个参数即可,可以理解为鉴权次数
'duration' => 3600, //修改过时秒数,默认1小时后会导致网络错误
'userId' => $this->getCurrentUser()->getId(),
);
if (isset($context['watchTimeLimit'])) {
$fields['data']['watchTimeLimit'] = $context['watchTimeLimit'];
}
if (isset($context['hideBeginning'])) {
$fields['data']['hideBeginning'] = $context['hideBeginning'];
}
$token = $this->getTokenService()->makeToken($type, $fields);
return $token;
}
第二个文件
src/AppBundle/Twig/WebExtension.php
src/AppBundle/Twig/WebExtension.php
protected function makeToken($type, $fileId, $context = [])
{
$fields = [
'data' => [
'id' => $fileId,
],
'times' => 10, // // 修改这个参数即可,可以理解为鉴权次数
'duration' => 3600, //修改过时秒数,默认1小时后会导致网络错误
'userId' => $this->biz['user']['id'],
];
if (isset($context['watchTimeLimit'])) {
$fields['data']['watchTimeLimit'] = $context['watchTimeLimit'];
}
if (isset($context['hideBeginning'])) {
$fields['data']['hideBeginning'] = $context['hideBeginning'];
}
return $this->getTokenService()->makeToken($type, $fields);
}
修改完后记得清一下缓存!
###ubuntu###
cd edusoho/app/cache
rm * -rf # 删除之前的所有缓存,注意,此命令一定要在 edusoho/app/cache 目录下执行,不然会删除其他文件,后果自负!!!