微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于Dragonboard 410c的智能魔镜设计(4)——如何检索视频消息并播放显示

基于Dragonboard 410c的智能魔镜设计(4)——如何检索视频消息并播放显示

时间:02-10 来源:互联网 点击:

前面给大家介绍了如何自动的检索指定用户的文本消息,并且采用html模板方式在qt控件上自动循环的播放文本消息,但是在智能魔镜中我们还可以向指定用户推送视频消息,实时显示视频消息,这里进一步向大家介绍如何在基于dragonboard 410c的智能魔镜上实现视频消息的自动检索和播放。

与检索文本消息类似,在我们构建的智能魔镜数据库中的pushInfo表中保存了视频消息的路径,如果在该表中的字段infoType==1的时候,为视频消息,这时候在pushInfo表中的filePath中将会记录该视频的具体的地址,可以是云端也可以是本地的视频路径,都可以支持,同样在视频消息中,字段isTop和viewWight依然对其其作用,可以控制该视频的播放顺序和是否播放,如果isTop为1表示该视频将优先播放,如果多个视频消息的isTop为1那么将根据时间先后来排序,如果viewWight为0表示该消息已经播放,不再播放,根据上述规则,本文在数据库类中构建getTextMessageList(self,userID)函数来完成对指定用户的视频消息的检索,具体实现代码如下:

     def getUserVideoMessageList(self,userID):
        format="select pushID,filePath from pushInfo where ownerID==%u and isTop==1 and infoType==1 order by pushTIme desc"
        values=(userID)
        querySQL1=format % values
        self.cu.execute(querySQL1)
        result1=self.cu.fetchone()
        #print result
        format="select pushID,filePath,pushTIme from pushInfo where ownerID=%u and isTop==0 and infoType==1 order by pushTIme desc"
        values=(userID)
        querySQL2=format % values
        self.cu.execute(querySQL2)
        result2=self.cu.fetchone()
        if result1!=None and result2 != None:
            #result=result1+result2
            return result1+result2
        elif result1==None and result2!=None:
            #result=result2
            return result2
        elif result1!=None and result2 == None:
            #resutl=result1
            return result1
        else:
            #result==None
            return None

上述代码中,将返回消息的ID:infoID,视频路径:filePath,以列表的形式返回,用户获取该列表后,就可以调用视频播放器加载视频列表并且进行播放,这里我们使用的是mplayer视频播放器来实现视频的播放,该播放器的具体使用方式和控制方式大家可以参考我之前写过的在410c板上使用mplayer播放视频一文的博客中的内容,这里我们直接上代码,具体的播放如下:

        #show message end get video message info
        if videoMsgList!=None:
            print("start play video msg")
            i=0
            for videoMsg in videoMsgList:
                if i%2==0:
                    print(videoMsg)
                    self.push_video_userID.append(videoMsg)
                else:
                    print(videoMsg)
                    self.videoPathList.append(videoMsg)
                i=i+1
        videocmd="mplayer -vo x11 -playlist "
        for video in self.videoPathList:
            videocmd=videocmd+' '+video
        os.system(videocmd)    

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top