MediaCenter开发整理(一)关于SDK

来源:互联网 发布:八面玲珑 知乎 编辑:程序博客网 时间:2024/06/05 05:50

前一段时间开发了一个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

所以WMCApplication要求必须有强命名  名字 版本 键值对snk

 

WMC的线程

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

每个BackgroundApplication运行在一个单独的隔离的线程里

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占用着当前播放资源,用户可以随时

原创粉丝点击