圖二十七:廣告系統設定檔 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)
跑馬燈訊息傳送端,會依照管理者所選擇的操作,在使用者所欲傳的訊息前 加一個參數。當接收端收到訊息時,查詢前面的參數就可以知道管理者欲進行的 操作了。