代码拉取完成,页面将自动刷新
同步操作将从 广州灵派科技有限公司/Encoder 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "ChannelFile.h"
#include <QDateTime>
ChannelFile::ChannelFile(QObject *parent) : Channel(parent)
{
video=NULL;//Link::create("InputFile");
audio=NULL;
encV=Link::create("InputFile");
encA=encV;
index=-1;
connect(encV,SIGNAL(newEvent(QString,QVariant)),this,SLOT(onNewEvent(QString,QVariant)));
}
void ChannelFile::init(QVariantMap)
{
Channel::init();
}
void ChannelFile::updateConfig(QVariantMap cfg)
{
if(cfg["enable"].toBool())
{
QVariantList list=cfg["file"].toList();
playList.clear();
for(int i=0;i<list.count();i++)
{
playList.append(list[i].toString());
}
if(list.count()>0 && index==-1)
playNext();
}
else
{
index=-1;
encV->stop();
}
Channel::updateConfig(cfg);
}
QVariantList ChannelFile::getPlayList()
{
QVariantList ret;
for(int i=0;i<playList.count();i++)
{
QVariantMap map;
QString name=playList[i];
map["name"]=name;
if(!durationMap.contains(name))
{
durationMap[name]=encV->invoke("getDuration",fullPath(name)).toLongLong();
}
map["duration"]=durationMap[playList[i]];
ret<<map;
}
return ret;
}
bool ChannelFile::seek(int index, qint64 time)
{
this->index=index;
QVariantMap data;
data["path"]=playList[index];
encV->start(data);
encV->invoke("seek",time);
return true;
}
QVariantMap ChannelFile::getPosition()
{
QVariantMap ret;
ret["file"]=file;
ret["position"]=encV->invoke("getPosition").toInt();
return ret;
}
bool ChannelFile::play(int index, int time)
{
this->index =index-1;
playNext();
encV->invoke("seek",time);
return true;
}
void ChannelFile::playNext()
{
index=(index+1)%playList.count();
QVariantMap data;
file=playList[index];
data["path"]=fullPath(playList[index]);
qDebug()<<"Play"<< data["path"].toString();
encV->start(data);
}
QString ChannelFile::fullPath(QString path)
{
return "/root/usb/"+path;
}
void ChannelFile::onNewEvent(QString type, QVariant )
{
qDebug()<<type;
if(type!="EOF")
return;
playNext();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。