劉春英,宋 燁,吳德華
(長沙航空職業技術學院 湖南 長沙 410124)
隨著數字電視和通信技術的不斷發展,用戶除了能看到越來越多的電視節目外,還能享受到數字電視增值業務帶來的眾多好處。但隨著中國數字電視總體轉換工作在各地市相繼完成,數字電視增值業務并沒有讓運營商獲得較好的經濟回報,也沒有在老百姓中博得好口碑。與開展得如火如荼的電信增值業務相比,更是相形見絀。數字電視用戶相對于電腦用戶而言更加大眾化,大多數的數字電視用戶只具備模擬時代積累下的電視使用經驗,只會用遙控器開關機、換臺和調音量[1]。因此一個界面友好的個性化數字電視應該易于學會、易于使用、易于理解、易于排錯、易于維護和易于群體共享。用戶界面是否直觀、清晰,又不失美感,操作是否簡單明了,是消費者在選購數字電視時的重要考慮因素。
數字電視用戶要通過用戶界面實現選臺、調節音量、瀏覽信息等眾多功能,因此用戶界面是軟件設計的重要模塊[2]。就功能而言,它能把系統提供的所有功能協調,集成在一起;就外觀而言,它必須提供一個簡單明了的操作機制,使用戶能方便調用系統提供的所有功能。用戶界面的功能調用由系統API實現,外觀設計主要由OSD顯示單元實現。用戶界面由兩部分組成:菜單部分和非菜單部分,如圖1所示。

圖1 用戶界面主菜單
各個菜單部分在功能上相互獨立,具體功能如下:
1)節目指南菜單 通過該菜單可以了解正在接收節目的接收進度、節目名稱、頻道數、節目數、頻道、時間等信息,它包括全頻道、全天候、全類型和全星期4個子菜單。
2)視頻點播菜單 該菜單可使用戶根據自己興趣自由點播節目庫中的視頻節目和信息,充分體現交互式操作的特點。
3)系統設置菜單 系統設置包含網絡設置、自動搜臺、頻道排序、查詢余額、版本信息、語言選擇等子菜單。
4)電視資訊菜單 該菜單可使用戶能在電視機上瀏覽各種感興趣的信息,實現個性化瀏覽。
上述是菜單部分所完成的功能。非菜單部分則可實現節目列表的切換、靜音、音量調節、畫面靜止和屏幕信息顯示等功能。鍵盤、前面板按鍵、遙控器、OSD畫面顯示等是用戶能直觀感受到的,而用戶輸入/輸出接口控制器則是真正起執行作用的部分。
目前的數字電視終端主要以數字電視機頂盒為主,本設計是在以ST(SGS-THOMSON)公司提供的高集成度單片解碼器STi5518為核心的單片方案基礎上實現的。
該系統設計中,用戶界面創建是通過調用繪圖函數庫中的函數實現的。繪圖函數庫之間的從屬關系[3-4]如圖2所示。

圖2 繪圖函數庫之間的從屬關系
STOSD底層驅動程序中含有畫點、線、弧等最基本的函數。高級OSD程序庫hl_stosd.h包含了在STOSD底層驅動程序基礎上建立起來的一些高級繪圖函數,如字庫操作函數集(hlosd-font模塊)、OSD 基本圖形函數集(hl_stosd模塊)和貼圖(hlosd_bitmap模塊)函數集等。STWTK程序庫則位于所有繪圖函數的最頂層,大多數繪圖函數都靠它支持。
該用戶界面軟件的主要特點是模塊化。STWTK程序庫由許多圖形界面的“軟件元素”組成,它是創建界面的基本元素。STWTK程序庫提供的軟件元素主要有以下4類:
1)Menu(菜單)標準Menu由許多小單元組成,一個小單元代表一個可選項。同時Menu還應支持對這些選項的索引、排序和刪除等操作。
2)Button(按鈕)該結構被調用后,可以在圖形界面上顯示一個與“按鈕”類似的圖形,該“按鈕”從視覺上看也可達到按下或彈起的效果。
3)EntryBox(輸入文本框)該結構被調用后,可在圖形界面上顯示一個包含用戶輸入信息(用字符表示)的矩形框。
4)Slider(滾動條)標準Slider是由滑動槽和一個移動塊組成。滑動槽決定了Slider是水平還是垂直的。
本方案采用面向對象的思想來設計軟件的結構。單個“軟件元素”類似于C++中的一個類,它有著自己的特性和依據其特性設計的專用操作,并且每個軟件元素均包括數據結構和成員函數兩部分。數據結構描述了對象的基本形式、特性以及它所能完成的功能,而成員函數則描述了外部能對對象進行何種操作。
通過上面的分析可得,用戶界面應用程序模塊主程序流程如圖3所示。

圖3 用戶界面模塊主程序流程
菜單的形式和功能是由預先設置好的軟件元素的數據結構和成員函數來確定,并且不同菜單的顯示流程都是一樣的。因此當用戶選中某個菜單時,通過調用成員函數可以顯示菜單并記錄按鍵值,最后按要求執行菜單功能。例如要在屏幕上創建一個按鈕,則首先可設置如下數據結構[5-6]:

然后合理調用 STWTK_CreatButton( )、STWTK_FreeButtonStructure()等成員函數即可達到目的。
個性化數字電視除了能向用戶提供高質量的數字電視節目外,還應具備方便、快捷的信息瀏覽功能。信息瀏覽實現過程為:當用戶想要在電視機上瀏覽某一信息時,可以通過遙控器輸入或通過用戶界面中選擇對應的關鍵詞。此時,系統首先會在用戶詞典中查看有無這一關鍵詞,如果關鍵詞已經在用戶詞典中存在,系統就通過索引找到與此關鍵詞相關的篇目在段落文本庫中的位置,并將其提取出來呈現在顯示器上。用戶可以用遙控器的“上”、“下”鍵來翻頁或使其上下滾動,方便用戶瀏覽。
如果在用戶詞典中沒有此關鍵詞,一方面要將此關鍵詞添加進用戶詞典;另一方面系統就直接到段落文本庫中去尋找。假如某一段落包含了此關鍵詞,就先判斷該關鍵詞的屬性,看能否隸屬于索引樹中的某一條目。如果屬于某一條目的話,就不需在索引中重新添加,直接把相關內容提取并顯示出來即可,否則就要將此關鍵詞添加進索引,并把相關內容在屏幕上顯示,供用戶瀏覽,工作流程見圖4。
本文通過定義基本軟件元素和對應成員函數來設計用戶界面軟件,能完成用戶界面的顯示和其他基本功能,便于用戶通過選擇對應關鍵詞實現個性化信息瀏覽與交互。由于軟件是由一個個功能模塊構成,結構性很強,大大減少工作量和復雜性,也便于日后的移植和升級。

圖4 實現瀏覽交互的工作流程
[1]于華利.數字電視人機交互及圖形界面方法[J].中國數字電視,2008(49):70-71.
[2]汪陽,張明義.廣播電視系統人機交互界面的設計與實現[J].微計算機信息,2008(24):27-29.
[3]SGS-THOMSON.STi5518 single-chip set-top box decoder with MP3 and hard disk drive support preliminary data[M/CD].SGS-THOMSON,2000.
[4]SGS-THOMSON.STi5518 single-chip set-top box decoder with MP3 and hard disk drive support data sheet[M/CD].SGS-THOMSON,2000.
[5]黃欣,陳珊,俞斯樂.數字電視接收機用戶接口界面軟件的設計與實現[J].信號處理,2002(18):480-483.
[6]黃維通.Visual C++面向對象與可視化程序設計[M].北京:清華大學出版社,2003.