#include "ChannelImage.h"#include <QDateTime>ChannelImage::ChannelImage(QObject *parent) : Channel(parent){inputImage=Link::create("InputImage");video=inputImage;encV=Link::create("EncodeV");encV2=Link::create("EncodeV");encA=Link::create("EncodeA");audio=NULL;index=-1;}void ChannelImage::init(QVariantMap){inputImage->linkV(overlay)->linkV(encV);overlay->linkV(encV2);gain->linkA(encA);connect(&timer,SIGNAL(timeout()),this,SLOT(onTimeout()));Channel::init();}void ChannelImage::updateConfig(QVariantMap cfg){QVariantList list=cfg["image"].toList();playList.clear();for(int i=0;i<list.count();i++){playList.append(list[i].toMap());}if(cfg["enable"].toBool()){if(list.count()>0 && index==-1)playNext();if(cfg["encv"].toMap()["codec"].toString()!="close"){QVariantMap encvMap = cfg["encv"].toMap();encV->start(encvMap);}elseencV->stop();if(cfg["enable2"].toBool() && cfg["encv2"].toMap()["codec"].toString()!="close"){QVariantMap encv2Map = cfg["encv2"].toMap();encV2->start(encv2Map);}elseencV2->stop();if(cfg["enca"].toMap()["codec"].toString()!="close")encA->start(cfg["enca"].toMap());elseencA->stop();}else{index=-1;inputImage->stop();encV->stop();encV2->stop();encA->stop();timer.stop();}Channel::updateConfig(cfg);}QVariantMap ChannelImage::getPosition(){QVariantMap ret;ret["file"]=file;ret["position"]=curPlayCount;return ret;}bool ChannelImage::play(int index){this->index =index-1;playNext();return true;}void ChannelImage::playNext(){index=(index+1)%playList.count();QVariantMap dd;file=playList[index].toMap()["path"].toString();dd["path"]=fullPath(file);dd["framerate"]=30;qDebug()<<"Play"<< dd["path"].toString();inputImage->start(dd);curPlayCount = 0;if(!timer.isActive())timer.start(1000);}QString ChannelImage::fullPath(QString path){return "/root/usb/"+path;}void ChannelImage::onTimeout(){if(index >= playList.count())return;int duration = playList[index].toMap()["duration"].toInt();if(curPlayCount == duration)playNext();curPlayCount++;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。