MEDIA PORTAL

Media Portal是一款為你提供未來影音媒體中心雛形的播放軟體,不過它是開源的!具有影音播放、電視欣賞、預錄、照片瀏覽、音樂欣賞、氣象播報等功能,它能夠讓使用者將它當作計算機中的影音媒體播放中心,只要想要觀看電視節目或是欣賞影音檔案時,都只要透過Media Portal就能夠達成。MediaPortal還提供了電視預錄功能,使用者可以直接指定多個想要預錄節目的時間,只要時間一到,就會自動幫你錄下這些節目,方便你有時間時再回頭欣賞。而相簿與天氣模組則能夠讓你的計算機變成家人的回憶中心或是天氣預報台,幫你的計算機增添價值。

基本信息

簡介

MediaPortal是一套開源的強大的個人媒體中心,它可以讓你的PC變成像電視機一樣的簡單家用電器。它支持模擬電視卡數位電視卡(包括DVB-T/S/C等格式),也可以支持網路音頻廣播等等功能,它就像MS Media Center那樣強大。而且重點是開源的,你無須為它多化一分錢。

缺點

MediaPortal如此強大的背後,卻有一個非常不方便的地方,就是不支持中文。後為了讓它支持中文開始對它進行一次改造。MediaPortal是由C#開發的,所有的UI配置由XML檔案來定義,而對語言的支持就在2個關鍵檔案:\Skin\userskin\font.xml; \Language\userLanguage\strings.xml。Font.xml定義了UI顯示所使用的字型,strings.xml定義了UI所顯示的文字(也就是語言包了)。開始看到這2個檔案以為實現中文會非常簡單,立刻就修改strings.xml,把裡面所有英文選單改為中文,並修改font.xml把裡面所使用的英文字型改成中文字型。重啟程式,UI顯示字型改變,但選單還是英文!看來中文支持並不簡單,只好從頭對整個程式進行分析了。

如何中文化

首先考慮的是,在XML檔案送出的時候,MediaPortal使用程式設定的字元集對字元集進行編碼,那么我就在2個XML檔案的頭上寫入<?xmlverstion="1.0"Language="gb2312">以期待xml使用gb2312字元集進行編碼。再次重啟程式,這次有點效果,主選單英文的顯示正常,但修改了中文的選單變成了空白!對主選單中文按下回車進入下一級選單,在程式的窗體上已經顯示了中文。換句話說,MediaPortal已經正確調用了font.xml所制定的字型,並解釋了修改後的strings.xml,而且把中文回傳到了程式的from上。那么顯示不了中文是為什麼呢?答案只要去論壇上找了。
到MediaPortal開發者論壇,(都是老外啊,英文不好搞個詞霸翻譯下先)也有幾個人問到了MediaPortal對中文支持的問題,也有老外問其他語言支持的,幾乎所有的回答都是修改strings.xml檔案,只有一個人回答說他成功令MediaPortal支持了中文只是文字尺寸太小(我估計他是中國人)但回答只有短短一句話,看來論壇上找不到好的答案了,只有分析代碼
通過GUIFont.CS代碼分析我找到了MediaPortal的整個顯示機制,MediaPortal啟動時先把所有英文字元通過DDraw寫成圖形,然後寫到\fonts\font\目錄裡面的debug_*.png檔案並保存起來(如果檔案不存在則重寫一編),然後通過debug_*.png.XML進行定位,在strings.xml需要調用字型的時候,就在debug_*.png裡面獲得字元的位置並寫螢幕。分析到這裡,整個過程已經很明白了,MediaPortal為什麼不支持中文是因為它的顯示機制決定的!難以想像誰會這么BT對65536箇中文字元進行圖形化,並且調用?整個分析過程完結。

相關詞條

相關搜尋

熱門詞條

聯絡我們