同步操作将从 广州灵派科技有限公司/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();}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。