MediaCenter開發整理(一)關於SDK

前一段時間開發了一個MediaCenter的程序,由於之前沒有開發過類似的程序,所以做了一下小研究,整理一下研究結果,有點亂,先掛上以後整理。

這裏參考了MediaCenter的SDK幫助文檔和SteveHarding寫的一本叫做Programming in Vista Media Center的書(作者只寫了半本,下半本還沒寫出來,很尷尬,但是對MCML的講解比較詳細,可以入個門,看過之後看SDK不會那麼迷茫),又看了SDK裏面的大部分Demo。

先貼上整理的東西,以後再寫細節的東西,這裏有我自己試驗出來的,有在demo裏看出來的,有的是翻譯的英文文檔。

 

MediaCenter編程關於SDK

工具

Preview Tool Launcher 查看mcml 

Sample Explorer查看demo  貌似不好用

Animation Explorer 查看編輯動畫  會生成動畫代碼

 

VS2008模板

WMC Application 4個按鈕的基本框架

WMC Application-Background 後臺程序

WMC Application-Fundamental 最小代碼的框架

 

WMC 包含兩個部分  Managed Code Presentation Layer (mv)

Managed Code 包含以下namespace

Microsoft.MediaCenter

Microsoft.MediaCenter.Hosting

Microsoft.MediaCenter.UI

Microsoft.MediaCenter.DataAccess

Microsoft.MediaCenter.TV.Epg

Microsoft.MediaCenter.TV.Scheduling

Microsoft.MediaCenter.ListMaker

 

三種Application

Local Application 程序集和相關的文件

Web Application 通過http協議傳遞的mcml文件 類似asp.net

Background Application WMC啓動時啓動,自己退出或者WMC關閉時退出,能夠誇WMC程序?

 

WMC只加載本地的GAC

所以WMC Application要求必須有強命名  名字 版本 鍵值對snk

 

WMC的線程

WMC Application寄生在ehExtHost.exe進程中,先前的版本是shShell.exe,有各自的區域

每個Background Application運行在一個單獨的隔離的線程裏

Application可以創建多線程,但是必須使用Background線程,設置線程屬性IsBackgroundtrue

前端的顯示線程可以在適當的時機停止

WMC Object Model只能在一個線程中使用,所以不能在主線程之外的線程構造ModeItem或者UI的消息響應

大部分Microsoft.MediaCenter.UI中的函數都只能在主線程中調用!

Microsoft.MediaCenter Microsoft.MediaCenter.HostingMicrosoft.MediaCenter.ListMaker可以在任何線程中使用,但是有些會阻塞,並且回調必須在主線程裏

Microsoft.MediaCenter.TV.EpgMicrosoft.MediaCenter.TV.Scheduling可以在多個線程中使用,可以在當前線程回調

exExtHost.exe最多可以有8個實例,可以用自己的方法在多個實例間通信

windows的外部程序可以依賴或者被依賴於WMC程序,不管WMC運行與否

 

Back Stack後退鍵 --

WMC支持8步的後退,一般開始於開始菜單,由HistoryOrentedPageSession維護

 

保證Application 只有一個實例

如果Application佔用着當前播放資源,用戶可以隨時

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章