• 沒有找到結果。

廣告內容播放系統的設計與實作

圖二十七:廣告系統設定檔 ADPlayerInfo.ini 節區設計

[IdleTime] //暫停狀態偵測週期設定

一般較大型的軟體會把 ini 檔載入記憶體裡,一但變數值有經過更改,會先

4.2.3 播放核心

依照第三章的分析,播放核心需提供以下功能:

1. 解析派送系統產生的播放清單,按照時程設定播放影片。

2. 支援大部分的影片格式。

3. 全螢幕播放。

4. 提供預覽功能。

5. 避免黑幕現象 (換片中因為載入影片所產生的短暫停頓) 。

本播放核心以智勝國際開發的多媒體動態連結函式庫來開發

(BWMediaDll.dll) ,可取得影片長度,易於控制清單流程。而只要播放端有安裝 常見影片格式的 Codec(Coder-Decoder,各種影音格式的解碼、編碼壓縮包),即可 驅動大部分的影音格式 (*avi,*.wmv,*.mpeg,*.flv…等) 。目前一般常用的 Codec 解碼-編碼壓縮包為為 K-lite Codec Pack [7]。可以滿足第一與第二點需求。

而系統在使用介面上可讓使用者選擇是否全螢幕模式,若有則將播放幕展開 大小如同當前顯示器的解析度大小,即全螢幕播放影片,若沒勾選則顯示小視窗 作為預覽影片模式,符合第三、四點的播放需求。

在影片要結束前,我們將下一部影片預先載入到記憶體,以避免前一部已經 播畢而下一部仍在載入而出現的短暫停頓 ,以此方式可解決黑幕問題。

4.2.2 跑馬燈模組實作

跑馬燈模組含顯示操控與網路監聽兩大部份,設計實作如下:

顯示操控,關於顯示的部份:

本系統的播放幕為擺放在 TForm 元件上的 TPanel 元件。在播放幕上擺放一 個 TStaticText 元件,可作為一個字幕顯示器。而我們必須將 TPanel 的 handle 值傳

給 Player,並將 TStaticText 的順序設定在 TPanel 的前面:如此在播放影片時,字 幕顯示器就不會被影片的影像覆蓋到。另外,以一個 timer 週期性的使字幕顯示 器向左移動一小段距離,即可造成字幕移動的跑馬燈效果:如下圖:

TPanel

TForm TPanel TStaticText

TForm TStaticText

圖二十九:跑馬燈顯示

而 timer 也必須監看字幕顯示器的位置,若往左超出邊界則下一個時間週期字幕 必須從右重新出現且同時抽換訊息。系統的訊息儲存在一個環狀佇列進行輪播。

Message A

Message B

A

B

C

D E F

G

圖三十:跑馬燈顯示(2)

顯示操控,關於操控的部份:

以更改字幕顯示器元件的方式可以決定字幕的大小以及位置;而設定 timer 的時間週期可以改變跑馬燈速度。更改 timer 內週期字幕顯示器的位移量可以改 變字幕播放的流暢度。

網路監聽部份:透過網路,訊息發送端可向訊息接收端(廣告播放器)裡面的 訊息佇列進行以下三種操作:

1. 在訊息佇列裡增加一筆訊息 (Enqueue)

2. 在訊息佇列裡刪除一筆訊息 (Dequeue)

3. 清除佇列裡所有訊息(ClearQueue)

跑馬燈訊息傳送端,會依照管理者所選擇的操作,在使用者所欲傳的訊息前 加一個參數。當接收端收到訊息時,查詢前面的參數就可以知道管理者欲進行的 操作了。