隨著數(shù)字電視和通信技術(shù)的不斷發(fā)展,用戶除了能看到越來越多的電視節(jié)目外,還能享受到數(shù)字電視增值業(yè)務(wù)帶來的眾多好處。但隨著中國數(shù)字電視總體轉(zhuǎn)換工作在各地市相繼完成,數(shù)字電視增值業(yè)務(wù)并沒有讓運營商獲得較好的經(jīng)濟回報,也沒有在老百姓中博得好口碑。與開展得如火如荼的電信增值業(yè)務(wù)相比,更是相形見絀。數(shù)字電視用戶相對于電腦用戶而言更加大眾化,大多數(shù)的數(shù)字電視用戶只具備模擬時代積累下的電視使用經(jīng)驗,只會用遙控器開關(guān)機、換臺和調(diào)音量。因此一個界面友好的個性化數(shù)字電視應(yīng)該易于學(xué)會、易于使用、易于理解、易于排錯、易于維護和易于群體共享。用戶界面是否直觀、清晰,又不失美感,操作是否簡單明了,是消費者在選購數(shù)字電視時的重要考慮因素。
1個性化數(shù)字電視用戶界面的設(shè)計
數(shù)字電視用戶要通過用戶界面實現(xiàn)選臺、調(diào)節(jié)音量、瀏覽信息等眾多功能,因此用戶界面是軟件設(shè)計的重要模塊。就功能而言,它能把系統(tǒng)提供的所有功能協(xié)調(diào),集成在一起;就外觀而言,它必須提供一個簡單明了的操作機制,使用戶能方便調(diào)用系統(tǒng)提供的所有功能。用戶界面的功能調(diào)用由系統(tǒng)API實現(xiàn),外觀設(shè)計主要由 OSD顯示單元實現(xiàn)。用戶界面由兩部分組成:菜單部分和非菜單部分,如圖1所示。各個菜單部分在功能上相互獨立,具體功能如下:
1)節(jié)目指南菜單 通過該菜單可以了解正在接收節(jié)目的接收進度、節(jié)目名稱、頻道數(shù)、節(jié)目數(shù)、頻道、時間等信息,它包括全頻道、全天候、全類型和全星期4個子菜單。
2)視頻點播菜單 該菜單可使用戶根據(jù)自己興趣自由點播節(jié)目庫中的視頻節(jié)目和信息,充分體現(xiàn)交互式操作的特點。
3)系統(tǒng)設(shè)置菜單 系統(tǒng)設(shè)置包含網(wǎng)絡(luò)設(shè)置、自動搜臺、頻道排序、查詢余額、版本信息、語言選擇等子菜單。
4)電視資訊菜單 該菜單可使用戶能在電視機上瀏覽各種感興趣的信息,實現(xiàn)個性化瀏覽。
上述是菜單部分所完成的功能。非菜單部分則可實現(xiàn)節(jié)目列表的切換、靜音、音量調(diào)節(jié)、畫面靜止和屏幕信息顯示等功能。鍵盤、前面板按鍵、遙控器、OSD畫面顯示等是用戶能直觀感受到的,而用戶輸入/輸出接口控制器則是真正起執(zhí)行作用的部分。
2 個性化數(shù)字電視用戶界面的實現(xiàn)
2.1 用戶界面的實現(xiàn)方案
目前的數(shù)字電視終端主要以數(shù)字電視機頂盒為主,本設(shè)計是在以ST(SGS-THOMSON)公司提供的高集成度單片解碼器S
該系統(tǒng)設(shè)計中,用戶界面創(chuàng)建是通過調(diào)用繪圖函數(shù)庫中的函數(shù)實現(xiàn)的。繪圖函數(shù)庫之間的從屬關(guān)系如圖2所示。STOSD底層驅(qū)動程序中含有畫點、線、弧等最基本的函數(shù)。高級OSD程序庫hl_stosd.h包含了在STOSD底層驅(qū)動程序基礎(chǔ)上建立起來的一些高級繪圖函數(shù),如字庫操作函數(shù)集(hlosd- font模塊)、OSD基本圖形函數(shù)集(hl_stosd模塊)和貼圖(hlosd_bitmap模塊)函數(shù)集等。STWTK程序庫則位于所有繪圖函數(shù)的最頂層,大多數(shù)繪圖函數(shù)都靠它支持。
該用戶界面軟件的主要特點是模塊化。STWTK程序庫由許多圖形界面的“軟件元素”組成。它是創(chuàng)建界面的基本元素。STWTK程序庫提供的軟件元素主要有以下4類:
1)Menu(菜單) 標準Menu由許多小單元組成,一個小單元代表一個可選項。同時Menu還應(yīng)支持對這些選項的索引、排序和刪除等操作。
2)Button(按鈕) 該結(jié)構(gòu)被調(diào)用后,可以在圖形界面上顯示一個與“按鈕”類似的圖形,該“按鈕”從視覺上看也可達到按下或彈起的效果。
3)EntryBox(輸入文本框) 該結(jié)構(gòu)被調(diào)用后,可在圖形界面上顯示一個包含用戶輸入信息(用字符表示)的矩形框。
4)Slider(滾動條) 標準Slider是由滑動槽和一個移動塊組成?;瑒硬蹧Q定了Slider是水平還是垂直的。
本方案采用面向?qū)ο蟮乃枷雭碓O(shè)計軟件的結(jié)構(gòu)。單個“軟件元素”類似于C++中的一個類,它有著自己的特性和依據(jù)其特性設(shè)計的專用操作,并且每個軟件元素均包括數(shù)據(jù)結(jié)構(gòu)和成員函數(shù)兩部分。數(shù)據(jù)結(jié)構(gòu)描述了對象的基本形式、特性以及它所能完成的功能,而成員函數(shù)則描述了外部能對對象進行何種操作。
2.2 用戶界面的軟件實現(xiàn)
通過上面的分析可得,用戶界面應(yīng)用程序模塊主程序流程如圖3所示。
菜單的形式和功能是由預(yù)先設(shè)置好的軟件元素的數(shù)據(jù)結(jié)構(gòu)和成員函數(shù)來確定,并且不同菜單的顯示流程都是一樣的。因此當(dāng)用戶選中某個菜單時,通過調(diào)用成員函數(shù)可以顯示菜單并記錄按鍵值,最后按要求執(zhí)行菜單功能。例如要在屏幕上創(chuàng)建一個按鈕,則首先可設(shè)置如下數(shù)據(jù)結(jié)構(gòu):
然后合理調(diào)用STWTK_CreatButton()、STWTK_FreeButton Structure()等成員函數(shù)即可達到目的。
3 用戶界面中的信息瀏覽交互過程
個性化數(shù)字電視除了能向用戶提供高質(zhì)量的數(shù)字電視節(jié)目外,還應(yīng)具備方便、快捷的信息瀏覽功能。信息瀏覽實現(xiàn)過程為:當(dāng)用戶想要在電視機上瀏覽某一信息時,可以通過遙控器輸入或通過用戶界面中選擇對應(yīng)的關(guān)鍵詞。此時,系統(tǒng)首先會在用戶詞典中查看有無這一關(guān)鍵詞,如果關(guān)鍵詞已經(jīng)在用戶詞典中存在,系統(tǒng)就通過索引找到與此關(guān)鍵詞相關(guān)的篇目在段落文本庫中的位置,并將其提取出來呈現(xiàn)在
如果在用戶詞典中沒有此關(guān)鍵詞,一方面要將此關(guān)鍵詞添加進用戶詞典;另一方面系統(tǒng)就直接到段落文本庫中去尋找。假如某一段落包含了此關(guān)鍵詞,就先判斷該關(guān)鍵詞的屬性,看能否隸屬于索引樹中的某一條目。如果屬于某一條目的話,就不需在索引中重新添加,直接把相關(guān)內(nèi)容提取并顯示出來即可,否則就要將此關(guān)鍵詞添加進索引,并把相關(guān)內(nèi)容在屏幕上顯示,供用戶瀏覽,工作流程見圖4。
4 結(jié)束語
本文通過定義基本軟件元素和對應(yīng)成員函數(shù)來設(shè)計用戶界面軟件,能完成用戶界面的顯示和其他基本功能,便于用戶通過選擇對應(yīng)關(guān)鍵詞實現(xiàn)個性化信息瀏覽與交互。由于軟件是由一個個功能模塊構(gòu)成,結(jié)構(gòu)性很強,大大減少工作量和復(fù)雜性,也便于日后的移植和升級。