HomePlay第一版demo發布

2021-08-31 14:19:32 字數 1638 閱讀 6851

一直想做乙個能夠方便跨平台開發的應用框 ,基礎部分已經完成,於是將這個處於襁褓中的框架應用在win32基礎之上,花了些功夫研究了ffmpeg的使用,做了乙個demo,發布出來吸引批評與建議。

框架基礎部分用c語言開發,以dll方式封裝了核心功能以及對ffmpeg的使用部分。出於簡單考慮,外部採用mfc包裝,這部分原始碼以及各dll(包括ffmpeg版本0.8的dll)一起打包在附件中,以便使用者能夠根據需要定製。

框架設計的目標:

1.針對各類平台的圖形化應用;

2.模組化方式靈活滿足對多種2d/3d技術的支援;

3.輕量級實現,通過層次化的封裝提供各層次所必需的功能,避免對應用不必要的資源消耗;

框架實現的dll:

1.uicore -- 提供基礎圖形單元的定義,圖形剪下演算法的實現,通用控制項邏輯的實現;

2.win32.dll -- 提供win32平台的訊息幫浦;

3.gdi.dll -- 提供win32平台gdi圖形繪製功能;

4.widget.dll -- 提**用控制項(包括終端使用者所需要的視窗)的實現,由使用者(即應用的開發者)來完成,利用前面底層的支援,這一層顯得相當簡單,只需專注在應用邏輯的實現。對於底層尚未實現的一些特性,利用框架所設計的介面,也可以作充分定製;

5.ffmpeg.dll -- 提供對ffmpeg庫的呼叫封裝,這個dll不在框架範圍之內,屬於應用範疇,使用者完全可以作自己的實現;

最後介紹下homeplay.exe,它實現了乙個目錄樹,以及對框架介面和ffmpeg模組的呼叫,控制使用者輸入,完成整個homeplay的包裝,操控方式為,

2.右鍵單擊:暫停/恢復;

3.space:全部恢復/暫停;

4.left:回退(+ctrl可以增加距離);

5.right:快進(+ctrl可以增加距離);

6.up:增加音量(+ctrl可以增加距離);

7.down:減小音量(+ctrl可以增加距離);

16.要修改開啟時的預設路徑,可修改mfcdlg.cpp檔案「m_dirtreectrl.setselpath("f:\\xunlei")」的路徑;

目前在uicore.dll中對於通用控制項邏輯的實現還有很多待開發,但並不影響上層應用自行實現,因為圖形剪下已經能高效的完成,並且基礎介面也基本穩定。按照設計意圖,gdi.dll之後會開放給使用者以自行實現,因為這一層僅僅是簡單封裝與作業系統的圖形介面,以及與2d/3d技術的介面,只要替換這個dll(或者動態載入不同的dll),就可以支援(或同時支援)多種圖形技術。

第一版,期盼朋友們的問題反饋及寶貴建議,以待改進。

在windows一統桌面市場的今天,linux想要改變格局仍需時日,豐富的應用是引導使用者選擇的重要力量。希望乙個跨平台的應用框架可以為其提供一些支援,畢竟不必重複開發就能應用於各類平台非常誘人,讓更多使用者體驗自己的產品也會更有成就感。

homeplay下一步需要完善的功能考慮如下,

1.修正一些使用中的問題;

2.增加進度顯示;

3.框架下一步需要增加的考慮如下,

1.實現對樹控制項等常用控制項的基礎邏輯封裝;

2.規範並發布應用介面,以便使用者開發自己的應用;

3.實現xlib模組以支援linux應用;

4.實現ddraw/d3d/opengl等模組以支援其它圖形技術;

email:[email protected]

第一版Python程式

coding cp936 import os import cpickle as p class person def init self,name,age,self.name name self.age age self.def str self return name self.name age...

MVC面試第一版

mvc流程 1 使用者向伺服器傳送請求,請求被springmvc 前端控制器 dispatcherservlet 捕獲 2 dispatcherservlet對請求url進行解析,得到請求資源識別符號 uri 4 dispatcherservlet 根據獲得的handler,選擇乙個合適的handl...

C Socket程式設計步驟 第一版

1 server端 include include pragma comment lib,ws2 32.lib voidmain if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 socket socksrv socket af inet,...