Image、Audio 及 Video Extenders 管理與程式設計

範例 1:根據特性擷取視訊

廣告代理商的會計經理需要查看在 1997 年中為 IBM 帳戶製作、少於 30 秒的視訊廣告。

下列圖表顯示用來存取視訊的查詢。 請注意到查詢中稱為 FilenameDuration 的 Video Extender UDF。

圖 2. 用來存取視訊的查詢

SELECT FILENAME(ADS_VIDEO)
       FROM ADS
WHERE CLIENT='IBM' AND
SHIP_DATE>='01/01/1997' AND
DURATION(ADS_VIDEO) <=30

該查詢將適當視訊的檔名傳回。然後,專案經理即可啟動其喜歡的視訊播放程式, 來播放每一個視訊檔的內容。

的一個範例。前一個範例顯示專案經理可交互發出的一個查詢。 一般說來,專案經理會使用應用程式來尋找及播放視訊。 下列範例顯示這種應用程式 (以 C 撰寫) 的一些重要元素。 該應用程式在 DB2 主變數 hvVid_fname 中擷取視訊檔名。 同時也請注意, 應用程式使用一個稱為 DBvPlay 的播放 API 來播放視訊。

圖 3. 用來存取和播放視訊的應用程式

#include <dmbvideo.h>
int count = 0;
EXEC SQL BEGIN DECLARE SECTION;
char hvClient[30];                      /*client name*/
char hvCampaign[30];                    /*campaign name*/
char hvSdate[8];                        /*ship date*/
char hvVid_fname [251]                  /*video file name*/
  EXEC SQL END DECLARE SECTION;
EXEC SQL DECLARE c1 CURSOR FOR
     SELECT CLIENT, CAMPAIGN, SHIP_DATE, FILENAME(ADS_VIDEO)
       FROM ADS
       WHERE CLIENT='IBM' AND
         SHIP_DATE>='01/01/1997' AND
         DURATION(ADS_VIDEO)<=30
FOR FETCH ONLY;
EXEC SQL OPEN c1;
for (;;) {
        EXEC SQL FETCH c1 INTO :hvClient, :hvCampaign,
                         :hvSdate, :hvVid_fname;
         if (SQLCODE != 0)
              break;
    printf("\nRecord %d:\n", ++count);
    printf("Client = '%s'\n", hvClient);
    printf("Campaign = '%s'\n", hvCampaign);
    printf("Sdate = '%s'\n", hvSdate);
    rc=DBvPlay(NULL,MMDB_PLAY_FILE,hvVid_fname,MMDB_PLAY_WAIT);
}
EXEC SQL CLOSE c1;


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]