由於本研究是要將錄製端維持 Windows 帄台上的錄製架構,播放端則是將 Windows 端的播放器移植到 Linux 帄台,使之可以正常瀏覽教材,因此實作要先 考慮到 Linux 帄台上播放器的移植方式。先分析 Linux 帄台上的開發工具及環 境,尋找適合的開發環境和工具後,再依播放器元件在 Linux 上尋找對應的移植 元件以作為播放器程式移植的依據並分析移植的方式。
3.5.1 開發工具及環境
在實作之前必頇先分析適合的程式開發工具及環境,先參考 Windows 帄台上 的播放器開發工具及環境,Windows 帄台使用的作業系統是 Microsoft Windows XP SP2,使用的程式開發語言是以 C++為主,與之搭配的程式開發工具則是 Borland C++ Builder 6.0 和其內建的 Borland C++ Builder compiler。另外,
Windows 帄台上的播放器畫面解析度為 720X540。另外,由於本研究有探討到網 頁線上瀏灠教材的部份,在 Windows 帄台下是使用 Internet Explorer 來作為瀏 覽網頁的瀏覽器。 較小的緣故,Linux 移植播放器的畫面解析度就略微調小,調整為 600X360 以符 合目標帄台的特性。另外,關於瀏覽器的部份就使用 Linux 帄台下最常用的 Mozilla Firefox 瀏覽器。下表 8 整理出 Windows 帄台上和 Linux 帄台上的開發 工具及環境比較:
表格 8、開發工具及環境
Windows 播放器 Linux 播放器 Platform OS MS Windows XP SP2 Fedora Linux 8 Programming
Language C++ C/C++
Scene Resolution 720X540 600X360 Development Tool BCB6 GTK+
Compiler BCB Compiler GCC Compiler browser Internet Explorer Mozilla Firefox
本研究雖然選擇了符合百元電腦特性的開發工具和環境,但是百元電腦目前 並無實機可使用,所以實際開發是在一般筆記型電腦上面。本研究希望能在一般
筆記型電腦的 Linux 系統上先做出成功移植播放器的案例,等待百元電腦實機出 可使用 macro 定義的方式或是利用文字編輯器的 search & replace 功能達到,
將原本使用到 BCB 或 VC 定義的資料型態替換成標準 C++的格式。下表 9 列出播
String Related(BCB) AnsiString string WideString wstring
Exception Handling(VC)
HRESULT long
S_OK 0
E_FAIL 1
Windows Data Type(VC)
LPSTR char*
BYTE unsigned char WORD unsigned short DWORD unsigned long 2. 重新開發對應程式:
件的替換方式:
表格 10、程式元件替換方式
Platform
Component Windows Linux
General C++ C++
Unicode Processing TTntString Glib XML DOM Model XMLDOC LIBXML2 Drawing Related GDI+ GDK
Image Related GDI+ GDK-pixbuf
Flash player Adobe Flash Player Gnash flash player Audio/Video Related Customized Media Player Mplayer
(1)General:
保留標準 C++元件和語法,不需修改。
(2)Unicode Processing:
處理 unicode 的元件,Windows 帄台的播放器是使用 BCB 的類庫
TTntString 來處理,在 Linux 帄台上本研究則採取使用 Glib 這套函式庫來 做替換,同樣可以達到處理 unicode 的功能;且 Glib 函式庫中還提供了 utf-16 和 utf-8 之間的轉換函式,也解決了 Windows 和 Linux 帄台上 unicode 格式不同的問題。
(3)XML DOM Model:
處理 XML 文件物件模式(XML DOM)的元件。在 Windows 帄台的播放器
(4)Drawing Related:
繪圖元件。在 Windows 帄台的播放器是使用 Windows API 的 GDI+的繪 圖功能,在 Linux 帄台上本研究則採取使用 GTK+內建的 GDK 這套繪圖函式 庫來做為替代元件,做畫直線、畫幾何圖形、畫上文字以及圖層透明色混合 的繪圖處理。
(5)Image Related:
處理圖片的元件。在 Windows 帄台的播放器是使用 Windows API 的 GDI+
的 CImage 元件作處理圖片的動作,在 Linux 帄台上本研究則採取使用 GTK+
內建的 GDK-pixbuf 這套專門對圖片做影像處理的函式庫來做為替代元件,
可載入圖片並對圖片做各種影像處理。
(6)Flash Player:
播放 Flash 檔案的元件。在 Windows 帄台的播放器是使用 Adobe 官方提
(7)Audio/Video Related:
播放影音檔案的元件。在 Windows 端的播放器是使用自製的播放程式來
一份講解檔的架構是採取類似 Powerpoint 檔案的分頁格式,一頁教材就發 佈成一個多媒體講解呈現檔(*.bst)儲存,而一份講解檔內若包含多頁教材,就 會儲存多份 bst 檔案,並且另外將整份講解檔的發佈資訊寫入一個 XML 檔案
(publish.xml)用來紀錄課程發佈資訊,此 XML 會和各個 bst 檔一同發佈成一 個完整的講解檔。