Internet TV 影音娱乐新生活

用网络浏览器看在线视频,您需要分别打开视频网站,逐个浏览,在网页之间来回搜索想看的内容。现在,通过 Windows Media Center 中的互联网视频功能,您无需登陆多个网站,只要打开 Windows Media Center,就可以在一个统一的界面中轻松观看来自不同内容提供商的在线电影、电视剧和视频等节目。

您可以从“指南”中浏览和挑选要观看的内容,也可以按关键字进行搜索。您可以直观地看到电影、电视剧或视频的缩略图和内容概要,只需单击便可立即观看。在观看的过程中您可以进行以下操作:播放、暂停、停止、快进、快退、向后跳过和向前跳过。使用“定位栏”,您可以跳到当前观看的电视节目、电影或视频剪辑的任意位置。

 

注意:Windows Media Center 中的互联网视频功能仅在 Windows 7 家庭高级版、专业版、旗舰版和企业版中包含。Windows Media Center 中的互联网视频支持 WMV、SilverLight 和 Flash。

目前互联网视频的所有内容都是免费提供的。

自动配置互联网视频

在配置互联网视频之前,您需要满足以下前提:

前提一:检查一下操作系统是否支持

互联网视频对运行平台有一定的要求:在 Windows 7 中,只有Windows 7 的家庭高级版、专业版、企业版和旗舰版 有 Windows Media Center 组件。如果需要升级系统,请访问这里

前提二:具有有效的宽带连接

满足以上前提后,您可以下载并运行微软所提供的一个“Fix it”小程序来自动配置互联网视频。步骤如下:点击下面的“Fix it”图标,然后在“文件下载”对话框中单击“运行”。

阅读“Fix it”的软件许可条款,勾选“我同意”,点击“下一步”。

如果弹出用户帐户控制对话框,请点击“是”。

稍等一分钟左右,出现下面的对话框,就表示互联网视频所需的系统配置已经自动完成了。

下面,您只需要再进行一些“初次使用之前的设置”就可以观看互联网视频了,见后面的说明。

如果您不是初次使用 Windows Media Center,在排除硬件方面的原因后,您也可以用此“Fix it”程序来尝试修复无法正常观看互联网视频的问题。

注意:运行“Fix it”程序时,请确保计算机处于联网状态。“Fix it”运行完成后,Windows Media Center 将被重置为初始状态,原先所有的个人设置都将丢失。此外,运行完“Fix it”以后,您还需要进行初次使用之前的设置来完成修复。

初次使用之前的设置

第一次使用互联网视频时,除了以上配置操作,我们还需要进行一些安装设置。

步骤一:快速设置

点击“开始”按钮,猛击“Windows Media Center”,或者在搜索结果中点击启动Windows Media Center。(使用快捷键 Win+Alt+Enter 也可以直接启动 Windows Media Center)

第一次运行 Windows Media Center,会出现如下画面, 点击“继续”

点击按钮“快速”

等待5分钟左右,待到托盘处 Windows Media Center 更新图标消失,重启一下 Windows Media Center。

(方框内为 Windows Media Center 更新图标;配置过后,下次它就会自动运行,定期更新视频节目)

重启后,会发现 Windows Media Center 中增加了“互联网视频”一项:

步骤二:安装 Windows Media Center 播放器组件

点击“互联网视频项”,勾选“我已阅读并了解服务条款和隐私声明”,点击“安装”按钮。(此步骤仅在初次安装时出现,完成后不会再提示)

安装过程

安装完毕后就会进入内容提供商界面,目前有CRI 国际在线网络电视,搜狐和新浪三者可供选择。

需要注意的是,进入搜狐或者新浪视频时,点击“播放”,系统会提示安装 Adobe Flash Player 插件(此步骤为初次安装,如已安装则不会再提示)。请勾选: “我已阅读并了解服务条款和隐私声明”,并点击“更新”按钮。

下载安装 Adobe Flash Player 插件之后,即可进行正常播放。并且只要搜狐或新浪其中之一安装了 Adobe Flash Player 插件,另一个就不会被要求安装。CRI 国际在线网络电视的播放器不基于 Adobe Flash Player,因此不会要求安装此插件。

安装完毕以后就可以观看节目了:

wmcplay

还可以一边看一边浏览节目:

image

桌面小工具

Windows Media Center自劢更新互联网视频时,会出现添加小工具的提示,如果您错过更新时的提示,也可以通过在桌面右键—>”小工具”手动添加。

image

 

have fun!  ;-)

 

参考资料:

http://www.microsoft.com/china/windows/windows-media-center/learn-more/internet-tv/default.aspx

http://www.cnbeta.com/articles/111555.htm

posted @ 2010-08-01 12:42 Freesc Huang 阅读(178) 评论(0) 编辑

Windows Phone Developer Tools CTP 发布了!

当地时间3月15号,微软在MIX10上宣布Windows Phone Developer Tools CTP 可供开发者下载了。

其中包含了:

Visual Studio 2010 Express for Windows Phone CTP
Windows Phone Emulator CTP
Silverlight for Windows Phone CTP
XNA 4.0 Game Studio CTP

下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&displaylang=en#filelist

 

 

posted @ 2010-03-16 11:05 Freesc Huang 阅读(1210) 评论(1) 编辑

Python - 默认参数的一次性求值

    和很多高级编程语言一样,Python也有默认参数,当默认参数是数值类型时,一切都很美好:

>>> def function(a, b = 1000000):
	b +=a
	return b
   如果你喜欢,你可以在一段代码中无数次的调用这个函数,只要你参数一样,结果应该都一样。比如:

function(1)总是会返回1000001。但是默认参数是其他类型(如列表)时就没那么美好了:

>>> def function(a, b = []):
	b.append(a)
	print(b)


     这时你如果在一段代码中持续的调用该函数,将会发生或许令人意外的情况:第一次调用function(1)的时候,很正常,会打印出[1],但是第二次再调用function(1),将会打印出[1,1]。这是为什么呢?不要紧,使用Python我们有办法检查一下是哪里出了毛病。这里我们可以在每一次调用函数的时候打印出b的ID。Python中一个对象的ID在其生命周期中是唯一的,和其他高级语言中所说的对象的地址一样。如果第二段代码中的b对象其ID一样,说明两次调用都使用的同一个对象,换句话说,Python函数对默认参数的求值操作在其生命周期中只发生一次(第一次)。可以使用以下的代码测试我们的想法:

def function1(a,b=100000):
    b+=a
    print("b = {0} with the id of {1}".format(b,id(b)))
def function2(a,b=[]):
    b.append(a)
    print("b = {0} with the id of {1}".format(b,id(b)))
    
def test():
    function1(1)
    function1(1)
    function2(1)
    function2(1)
    
if __name__ == '__main__':
    test()

    得到的输出如下:

b = 100001 with the id of 33384304
b = 100001 with the id of 33384304
b = [1] with the id of 33341848
b = [1, 1] with the id of 33341848

      果然,从后面两条结果中可以看到列表b在两次调用时都是使用的同一个对象,看来之前的猜想是正确的。对非数值类型的默认参数,只会在第一次调用时进行求值(取地址)操作。后面的所有调用都发生在同一个位置的对象上。只有字符串类型不受此限制,因为string本身是不可变的(immutable)的,每一次修改它都会创建一个新的对象。

      Python的这个小陷阱和它的灵活性是分不开的,在其他的强类型语言如C#中,类似Python的情况是不会发生的,C#4.0严格将引用类型的默认参数值限定为Null(除了String类型),否则会在编译时报错:

cs4namedarg     那么在Python中有办法使得每一次函数调用时都会使用最初设定的默认值么?办法有两种(有其他的办法欢迎在留言中告诉我),要么把默认值设为一个不可变(immutable)的值,比如string或者None,要么就每次调用的时候保留最初的默认值,并赋给调用函数。

     第一种方法很简单,在此不再赘述,不过需要注意以字符串为默认值时,如果频繁的调用函数可能会导致性能问题,因为每一次发生在该默认值上的操作,会创建一个新的string对象。对于第二种办法,可以考虑用Python的装饰器(decorator)实现,下面的代码演示了一个每一次调用都保存默认参数的装饰器:

def keepDefault(f):
    defArgs = f.__defaults__
    def keeper(*args,**kwArgs):
        f.__defaults__ = deepcopy(defArgs)
        return f(*args,**kwArgs)
    keeper.__name__ = f.__name__
    return keeper

然后我们将该装饰器应用到之前定义的function2中:

@keepDefault
def function2(a,b=[]):
    b.append(a)
    print("b = {0} with the id of {1}".format(b,id(b)))

然后我们像先前一样连续的调用function2,结果输出如下:

b = [1] with the id of 33892912
b = [1] with the id of 33892592

哈~ 我们如愿得到了结果。而且注意这里两次b对象的的ID不一样,这是因为每一次调用时,函数的参数都被deepcopy完整的克隆一遍。重新构造了新对象b。

Enjoy python!   ;-)

posted @ 2010-03-07 15:49 Freesc Huang 阅读(446) 评论(0) 编辑

Python小技巧 – True or False

  在昨天关于substring的blog中有如下一段代码:

image

也许你已经发现,在Python 3中其实有办法只用一行完成函数:

>>> def isSubstring2(s1,s2):
	return True if s2.find(s1)!=-1 else False

但是。。。还可以更简单吗?

如何更简单使用Python表达条件语句呢,just for fun :)

一种做法是使用列表索引:

>>> def isSubstring2(s1,s2):
	return [False,True][s2.find(s1)!=-1]
原理很简单,布尔值True被索引求值为1,而False就等于0. 还可以更简单么?留言给我吧 ;-)
posted @ 2010-03-04 19:30 Freesc Huang 阅读(393) 评论(2) 编辑

Python小技巧 - 子串查找

惭愧啊,今天写了个查找子串的Python程序被BS了…

如果让你写一个程序检查字符串s2中是不是包含有s1。也许你会很直观的写下下面的代码:

#determine whether s1 is a substring of s2 
def isSubstring1(s1,s2): 
    tag = False 
    len1 = len(s1) 
    len2 = len(s2) 
    for i in range(0,len2): 
        if s2[i] == s1[0]: 
            for j in range(0,len1): 
                if s2[i]==s1[j]: 
                    tag = True 
    return tag

 

可是这是Python,我们可以利用字符串自带的find()方法,于是可以这样:

def isSubstring2(s1,s2): 
    tag = False 
    if s2.find(s1) != -1: 
        tag = True 
    return tag

悲情的事就在于此,原来Python中的关键字"in”不仅可以用于列表、元祖等数据类型,还可以用于字符串。所以,这里只需要直接一行代码搞定:

def isSubstring3(s1,s2):
    return s1 in s2

后知后觉了,惭愧;-)

类似的,假设要在字符串中,查找多个子串是否存在,并打印出这些串和首次出现的位置:

def findSubstrings(substrings,destString):
    res =  map(lambda x:str([destString.index(x),x]),filter(lambda x:x in destString,substrings))
    if res:
        return ', '.join(list(res))
 
;-)  very cool~
UPDATE: 如果你不习惯最后面这种看起来很复杂的语法也没关系,可以使用列表解析,更加简洁:
def findSubstrings(substrings,destString):
    
return ''.join([str([destString.index(x),x]) for x in substrings if x in destString])
 

 

 
posted @ 2010-03-03 22:54 Freesc Huang 阅读(1355) 评论(1) 编辑

新的个人博客@ http://thinkbot.info

摘要: hi,欢迎大家访问我新的个人博客ThinkBot.info,cnblogs这个博客也将继续保持更新,新博客的内容主要是关于人工智能,互联网数据挖掘,智能交通,移动智能设备以及其他一些我学习和工作中所感兴趣的方面。ThinkBot.info域名申请了有一段时间了但是一直没有正式的启用。从现在起我会积极更新的,欢迎大家关注和订阅;-)阅读全文
posted @ 2010-02-26 15:10 Freesc Huang 阅读(268) 评论(3) 编辑

MeeGo:下一个Android?

摘要: 在上周的移动世界大会(MWC)上,微软发布了新的智能手机操作系统Windows Phone 7 。而几乎就在同时,全球最大的手机生产商Nokia和全球最大的半导体芯片制造商Intel宣布将各自的开源智能手机平台Maemo和Moblin(二者均基于Linux内核)合并[1] ,联手打造新的智能手机平台MeeGo[2]。加上iPhone和Android的强劲表现,未来两年的智能手机市场将会是一个全新的...阅读全文
posted @ 2010-02-21 16:11 Freesc Huang 阅读(902) 评论(0) 编辑

Windows Mobile 6.5.3 Developer Tool Kit 发布了

摘要: 经历了上个月的“早产门”,windows mobile 6.5的DTK终于发布了,发布名称为Windows Mobile 6.5.3 Developer Tool Kit。下载地址如下:http://www.microsoft.com/downloads/details.aspx?FamilyID=c0213f68-2e01-4e5c-a8b2-35e081dcf1ca&a...阅读全文
posted @ 2010-02-17 17:13 Freesc Huang 阅读(1344) 评论(2) 编辑

塞班(Symbian)开源了(包括Symbian 3和S60等)

摘要: 今天早些时候,塞班基金会正式宣布,其智能手机操作系统Symbian OS的内核及中间件和大部分软件都将以不同的license开放源代码,用户可以下载和修改它们,这次开放的源代码超过4000万行。这次开源行动无疑会吸引更多的开发者到Symbian的marketplace中来,这让近来一直收到iphone和android打压的Symbian OS又找回了些许空间。全球现在约有3.3亿Symbian智能...阅读全文
posted @ 2010-02-05 00:10 Freesc Huang 阅读(773) 评论(3) 编辑

Windows Mobile 6.5 SDK 发布了 (2月17日更新)

摘要: 昨天微软终于(突然)发布了Windows Mobile SDK 6.5,有中文版可供下载,不过遗憾的是仍然不支持VS2010。详见:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=c5241738-0fe6-4396-a4e5-5a516deb1bc5更新1:Waggener Edstrom,微...阅读全文
posted @ 2010-01-23 17:13 Freesc Huang 阅读(2610) 评论(4) 编辑

C#4.0新特性之(四)新的LINQ扩展方法-Zip()

摘要: C#4.0新特性之(四)新的LINQ扩展方法-Zip()1.简介  所谓zip(中文有拉链的意思),就是像拉链一样,把两个list缝合在一起。Python中有个zip函数可以用来方便的合并两个或者多个集合,例如:[代码]以上代码会打印出Freesc HuangJoshua GuanKen Wang在C#4.0中,我们可以看到一个类似的扩展函数[1]:代码2 Code highlighting pr...阅读全文
posted @ 2009-12-14 13:57 Freesc Huang 阅读(652) 评论(0) 编辑

C#4.0新特性之(三)协变与逆变

摘要: C#4.0新特性之(三)协变与逆变1.C#3.0以前的协变与逆变  如果你是第一次听说这个两个词,别担心,他们其实很常见。C#4.0中的协变与逆变[1](Covariance and contravariance)有了进一步的完善,主要是两种运行时的(隐式)泛型类型参数转换。简单来讲,所谓协变(Covariance)是指把类型从“小”升到“大”,比如...阅读全文
posted @ 2009-12-03 22:27 Freesc Huang 阅读(555) 评论(4) 编辑

C#4.0新特性之(二)命名参数,可选参数与COM互操作

摘要: C#4.0新特性之(二)命名参数,可选参数与COM互操作1.简介  之前C#(2.0)和java一样是一门的纯粹的面向对象的语言,他们都使用重载而不是可选参数。但是实际上使用的其他外部程序,COM组件却经常不要求指定所有参数(这在很多VC,VB编写的组件或者操作IronPython的对象的时候很常见,他们一直使用可选参数)。这会导致一个C#程序员不得不用Type.Missing塞满整个参数列表。不...阅读全文
posted @ 2009-12-02 16:23 Freesc Huang 阅读(411) 评论(1) 编辑

C#4.0新特性之(一)动态查找

摘要: C#4.0新特性之(一)动态查找  在大神Anders的领导下,C#这门语言也越来越快地朝着编程语言宇宙第一神器进化,C#4.0的新特征都是围绕“动态”(dynamic)的概念的,本文我们先来看看第一个新特性:动态查找(Dynamic Lookup)。1.初识dynamic动态查找允许动态(即在运行时)实现对某个对象的操作与对象类型的绑定,而不管这个对象是来自COM,Iro...阅读全文
posted @ 2009-11-30 20:55 Freesc Huang 阅读(622) 评论(4) 编辑

Android手机防盗工具DroidGuard

摘要: 前一阵子和Gildor以及fpy一起开发了一个小工具。项目名叫DroidGuard,顾名思义是保护手机的,但也绝非防火墙杀软之流。根据我们的调查,在以下几种场景丢失手机的案例比重还是相当大的:在教室上课、自习、睡觉,手机置于桌面或包中在宿舍或家中,人不在手机旁时(入室盗窃)在运动时,手机(放于包中)放在一旁被人顺手牵羊…DroidGuard正是为了应对这些情况,它发挥新型手机的优势,通...阅读全文
posted @ 2009-11-20 16:25 Freesc Huang 阅读(657) 评论(2) 编辑

Simple HostMonitor 实用的网管小工具

摘要: 我的朋友Ken Wang(http://gildor.cnblogs.com/) , 最近写了一个小工具, 用来监测他那孱弱的服务器是否挂掉, 并实时产生提醒(windows alert,email,twitter)等.这个工具在Codeplex开源并提供下载(http://simplehostmonitor.codeplex.com/)下面是对它的描述:Simple Host Monitor m...阅读全文
posted @ 2009-11-19 15:30 Freesc Huang 阅读(323) 评论(1) 编辑

Office Mobile 2010 Beta 发布了!

摘要: 微软刚刚发布了Office Mobile 2010的beta版, 可以免费使用半年(2010年四月到期), 官方网站http://www.microsoft.com/office/2010/en/mobile/default.aspx,列举了office2010的10大新特性, 其中我最喜欢的是第三条:" When delivering a presentation, your notes are...阅读全文
posted @ 2009-11-19 14:23 Freesc Huang 阅读(584) 评论(2) 编辑

试了一下.Net Fx 4.0中的Parallel

摘要: [代码]采用并行的Foreach效果的确很明显.不仅仅是指派了多个线程,对cpu的利用率也高很多,见下面两图比较:原来的foraech:480)this.width=480">使用parallel的foreach:480)this.width=480">有兴趣的朋友可以对parallel相应的类库做一下逆向工程分析一下it的原理;-)阅读全文
posted @ 2009-11-15 12:27 Freesc Huang 阅读(258) 评论(0) 编辑

Lambda演算与科里化(Currying)

摘要: Lambda演算与科里化(Currying)Lambda演算早在现代计算机问世以前,Lambda演算(λ演算)已经由图灵的老师阿隆佐·邱奇(Alonzo Church)引入。这种演算可以用来清晰地定义什么是一个可计算函数。它包括一条变换规则(变量替换)和一条函数定义方式,Lambda 演算的通用性在于任何一个可计算函数都能用这种形式来表达和求值。因而,它等价于后来提出的图灵机。...阅读全文
posted @ 2009-10-22 19:28 Freesc Huang 阅读(684) 评论(1) 编辑

选择,冒泡,合并 via Python

摘要: 前两天刚装了python 3.1.1, 禁不住技痒写点code。1.选择排序[代码]2.冒泡排序 [代码]3.合并排序 [代码]阅读全文
posted @ 2009-09-27 21:56 Freesc Huang 阅读(299) 评论(0) 编辑
仅列出标题  下一页

公告

统计