1. 程式人生 > >基於dragonboard 410c的智慧魔鏡設計(4)——視訊訊息檢索及自動播放

基於dragonboard 410c的智慧魔鏡設計(4)——視訊訊息檢索及自動播放

      前面給大家介紹瞭如何自動的檢索指定使用者的文字訊息,並且採用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視訊播放器來實現視訊的播放,該播放器的具體使用方式和控制方式大家可以參考我之前寫過的http://blog.csdn.net/andymfc/article/details/53811212部落格中的內容,這裡我們直接上程式碼,具體的播放如下:

        #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)    

      這段程式碼我們整合到文字訊息顯示程式碼段中,就可以在載入完文字訊息後,自動的按照順序的播放視訊了,同時文字訊息還可以在後面迴圈的播放,視訊播放完成後會自動的退出。

    到這裡我們就已經實現了智慧魔鏡的訊息顯示和視訊播放的核心功能,後續將向大家進一步介紹如何將之前介紹過的人臉識別技術整合進來,通過人臉檢測得到使用者的ID,然後根據ID 完成該使用者的視訊、文字訊息的檢索、顯示和播放等。

相關推薦

基於dragonboard 410c智慧設計4——視訊訊息檢索自動播放

      前面給大家介紹瞭如何自動的檢索指定使用者的文字訊息,並且採用html模板方式在qt控制元件上自動迴圈的播放文字訊息,但是在智慧魔鏡中我們還可以向指定使用者推送視訊訊息,實時顯示視訊訊息,這裡進一步向大家介紹如何在基於dragonboard 410c的智慧魔鏡上實

NET快取框架CacheManager在混合式開發框架中的應用1-CacheManager的介紹和使用 基於C#的MongoDB資料庫開發應用4--Redis的安裝使用

在我們開發的很多分散式專案裡面(如基於WCF服務、Web API服務方式),由於資料提供涉及到資料庫的相關操作,如果客戶端的併發數量超過一定的數量,那麼資料庫的請求處理則以爆發式增長,如果資料庫伺服器無法快速處理這些併發請求,那麼將會增加客戶端的請求時間,嚴重者可能導致資料庫服務或者應用服務直接癱瘓。快取方案

.NET快取框架CacheManager在混合式開發框架中的應用1-CacheManager的介紹和使用 基於C#的MongoDB資料庫開發應用4--Redis的安裝使用

在我們開發的很多分散式專案裡面(如基於WCF服務、Web API服務方式),由於資料提供涉及到資料庫的相關操作,如果客戶端的併發數量超過一定的數量,那麼資料庫的請求處理則以爆發式增長,如果資料庫伺服器無法快速處理這些併發請求,那麼將會增加客戶端的請求時間,嚴重者可能導致資料庫服務或者應用服務直接癱瘓。快取方案

基於Maven的SSM總體架構設計

基於Maven的SSM總體架構設計(一) 1 概述 1.1 編寫目的 1.2 讀者物件 1.3 引用檔案 1.4 術語表 2 相關技術介紹 2.1 Spring框架介紹 2.1.1

課設 - 基於FPGA的電子警察系統設計流程

  本文以FPGA晶片為核心,來檢測運動車輛是否超速以及車輛是否闖紅燈。   通過攝像機採集到的影象以影象處理的方法進行處理,然後通過MATLAB軟體將採集到的圖片轉化成Verilog可識別的的數字程式碼,再加以幀間差分法、最小二乘法,對處理過後的影象進行進一步的

基於Maven的SSM總體架構設計

3 總體設計 3.1 約定 3.1.1 基於Maven的工程結構         為了便於本團隊對新建Java專案的工程結構及依賴庫(jar)的版本統一,降低團隊成員之間的溝通成本,減少因依賴庫版本不一致導致的異常,我們約定建立標準的Maven工程。即在MyE

【Altera SoC】基於SOPC的單通道TDC設計2

     .debug_reset_request                 (cpu_debug_reset_request_reset),                     //       debug_reset_request.reset      

Python基於AIML智慧聊天機器人實戰4- 機器人自學習能力整合

一、前言 本文是《Python基於AIML智慧聊天機器人實戰》第四篇:AIML自學習能力整合; AIML是智慧對話機器人具有里程碑意義的開源專案,曾斬獲多項國際大獎,是基於檢索技術的閒聊式智慧對話機器人的基石。在此把過往學習AIML的內容做了專題整理,釋出出

ros中標誌位設計4

由於需要涉及控制權的交接事件,需要通過標誌位的方式進行設計。 首先需要自定一個標誌位的資訊在ros中用於標誌位資訊的釋出。 下面是用於標誌位的標頭檔案Flag.h // Generated by gencpp from file xx_msgs/Flag.msg // DO NOT ED

從0開始寫一個基於Flutter的開源中國客戶端4——Flutter佈局基礎

我的上一篇部落格中記錄了Flutter基礎和一些常用的Widgets,這一篇中主要記錄Flutter常用的一些佈局,希望自己在記錄的同時能溫故知新,同時給初學者一些幫助。 Flutter佈局容器 在Android開發中,我們使用xml檔案寫佈局,有諸

基於MFC的USB上位機開發4環路模組

延伸閱讀: 基於MFC的USB上位機開發(1)概述 基於MFC的USB上位機開發(2)速度測試模組 基於MFC的USB上位機開發(3)資料傳輸模組 基於MFC的USB上位機開發(4)環路模組 基於MFC的USB上位機開發(5)下環路模組 目錄 1. 設計思路

畢業設計— R語言入門Keras入門

前言 開始做畢設了,從零入門深度學習,打算把這個過程記錄下來,初級小白,筆記可能很囉嗦也可能有錯誤,如果有小夥伴看到,歡迎大家指正指導,有什麼學習的網站或者書籍,也可以一起交流^_ ^ 前置資訊:我是mac系統,使用預設python2.7 1.安裝R語言環境 2.R

【20171002】python_語言設計4檔案

1.檔案 (1)檔案定義:儲存在外部介質上的資料或資訊集合,有序資訊 (2)文字顯示:計算機顯示功能 (3)編碼:資訊轉化的過程 ASCII碼:7個二進位制位表示128個字元; Unicode編碼:跨語言跨平臺統一且唯一的二進位制編碼,每個字元兩個位元組長,65536個字元的編

資料庫設計4_邏輯結構設計_常用技巧

總結一下這些年在專案中一些設計技巧,有些在前面的章節已經提到過。 一、屬性定義 1.1、資料型別 (1)整型還是字元型 在可以為整型的情況下儘量使用整型,通常情況下整型佔的空間小,可以提高I/O及快取命中率。 (2)定長還是變長字元型 定長的

Mysql系列——資料庫設計4——實體表之間的關係

幹軟體這一行這麼多年,發現好的程式設計師也更加的好學。 大學時代,舍友放過一個影片,對其中的六度理論印象很深刻。 *六度人脈關係理論(Six Degrees of Separation),是指地球上所有的人都可以通過六層以內的熟人鏈和 任何其他人聯

Service與Android系統設計4-- ServiceManager

System Service的驅動形式 --- ServiceManager 對於ServiceManager的使用,我們在應用程式程式設計時也會經常使用到,比如我們需要使用Sensor時,我們一般會做如下的呼叫: mSensorManager = (SensorMan

微信小程序小結4 -- 分包加載小程序間跳轉

項目 devel 目前 圖片 ria 首頁 .com logs path 分包加載 某些情況下,開發者需要將小程序劃分成不同的子包,在構建時打包成不同的分包,用戶在使用時按需進行加載(主要是空間不夠用,哈哈~)。 在構建小程序分包項目時,構建會輸出一個或多個功能的分包,其中

Spark Streaming實時流處理筆記4—— 分散式訊息佇列Kafka

1 Kafka概述 和訊息系統類似 1.1 訊息中介軟體 生產者和消費者 1.2 Kafka 架構和概念 producer:生產者(生產饅頭) consumer:消費者(吃饅頭) broker:籃子 topic : 主題,給饅頭帶一個標籤,(

C語言例子4獲取當前日期時間

#include<time.h> int main() { time_t timep; struct tm *p; time (&timep); p=gmtime(&timep); printf("%d/%d/%d\n",

排序系列之4希爾排序C語言實現

希爾排序(Shell Sort)也稱為遞減增量排序演算法,是插入排序的一種高速而安定的改良版。因希爾(Donald L. Shell)於1959年提出而得名。各種實現在如何進行遞減上有所不同。 希爾排序是基於插入排序的以下兩點性質而提出改進方法的: 插入排序在對幾乎已經排好序的資料操作時, 效率高, 即可以達