<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>技术</title><link>http://blog.soease.com/andy/category/92.html</link><description>技术</description><managingEditor>andy</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>andy</dc:creator><title>javascript小技巧</title><link>http://blog.soease.com/andy/articles/585.html</link><pubDate>Fri, 04 Aug 2006 02:25:00 GMT</pubDate><guid>http://blog.soease.com/andy/articles/585.html</guid><wfw:comment>http://blog.soease.com/andy/comments/585.html</wfw:comment><comments>http://blog.soease.com/andy/articles/585.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.soease.com/andy/comments/commentRss/585.html</wfw:commentRss><trackback:ping>http://blog.soease.com/andy/services/trackbacks/585.html</trackback:ping><description>事件源对象 &lt;BR&gt;[color=Green]event.srcElement.tagName &lt;BR&gt;event.srcElement.type [/color]&lt;BR&gt;捕获释放 &lt;BR&gt;[color=Green]event.srcElement.setCapture(); &lt;BR&gt;event.srcElement.releaseCapture();[/color] &lt;BR&gt;事件按键 &lt;BR&gt;[color=Green]event.keyCode &lt;BR&gt;event.shiftKey &lt;BR&gt;event.altKey &lt;BR&gt;event.ctrlKey[/color] &lt;BR&gt;事件返回值 &lt;BR&gt;event.returnValue &lt;BR&gt;鼠标位置 &lt;BR&gt;event.x &lt;BR&gt;event.y &lt;BR&gt;窗体活动元素 &lt;BR&gt;document.activeElement &lt;BR&gt;绑定事件 &lt;BR&gt;document.captureEvents(Event.KEYDOWN); &lt;BR&gt;访问窗体元素 &lt;BR&gt;document.all("txt").focus(); &lt;BR&gt;document.all("txt").select(); &lt;BR&gt;窗体命令 &lt;BR&gt;document.execCommand &lt;BR&gt;窗体COOKIE &lt;BR&gt;document.cookie &lt;BR&gt;菜单事件 &lt;BR&gt;document.oncontextmenu &lt;BR&gt;创建元素 &lt;BR&gt;document.createElement("SPAN"); &lt;BR&gt;根据鼠标获得元素： &lt;BR&gt;document.elementFromPoint(event.x,event.y).tagName=="TD &lt;BR&gt;document.elementFromPoint(event.x,event.y).appendChild(ms) &lt;BR&gt;窗体图片 &lt;BR&gt;document.images[索引] &lt;BR&gt;窗体事件绑定 &lt;BR&gt;document.onmousedown=scrollwindow; &lt;BR&gt;元素 &lt;BR&gt;document.窗体.elements[索引] &lt;BR&gt;对象绑定事件 &lt;BR&gt;document.all.xxx.detachEvent('onclick',a); &lt;BR&gt;插件数目 &lt;BR&gt;navigator.plugins &lt;BR&gt;取变量类型 &lt;BR&gt;typeof($js_libpath) == "undefined" &lt;BR&gt;下拉框 &lt;BR&gt;下拉框.options[索引] &lt;BR&gt;下拉框.options.length &lt;BR&gt;查找对象 &lt;BR&gt;document.getElementsByName("r1"); &lt;BR&gt;document.getElementById(id); &lt;BR&gt;定时 &lt;BR&gt;timer=setInterval('scrollwindow()',delay); &lt;BR&gt;clearInterval(timer); &lt;BR&gt;UNCODE编码 &lt;BR&gt;escape() ,unescape &lt;BR&gt;父对象 &lt;BR&gt;obj.parentElement(dhtml) &lt;BR&gt;obj.parentNode(dom) &lt;BR&gt;交换表的行 &lt;BR&gt;TableID.moveRow(2,1) &lt;BR&gt;替换CSS &lt;BR&gt;document.all.csss.href = "a.css"; &lt;BR&gt;并排显示 &lt;BR&gt;display:inline &lt;BR&gt;隐藏焦点 &lt;BR&gt;hidefocus=true &lt;BR&gt;根据宽度换行 &lt;BR&gt;style="word-break:break-all" &lt;BR&gt;自动刷新 &lt;BR&gt;
&lt;META http-equiv=refresh content=8;URL=http://c98.yeah.net&gt;&lt;BR&gt;简单邮件 &lt;BR&gt;&lt;A href="mailto:aaa@bbb.com?subject=ccc&amp;amp;body=xxxyyy"&gt;&lt;BR&gt;快速转到位置 &lt;BR&gt;obj.scrollIntoView(true) &lt;BR&gt;锚 &lt;BR&gt;&lt;A name=first&gt;&lt;BR&gt;&lt;A href="http://blog.soease.com/andy/admin/EditArticles.aspx#first"&gt;anchors&lt;/A&gt; &lt;BR&gt;网页传递参数 &lt;BR&gt;location.search(); &lt;BR&gt;可编辑 &lt;BR&gt;obj.contenteditable=true &lt;BR&gt;执行菜单命令 &lt;BR&gt;obj.execCommand &lt;BR&gt;双字节字符 &lt;BR&gt;/[^\x00-\xff]/ &lt;BR&gt;汉字 &lt;BR&gt;/[\u4e00-\u9fa5]/ &lt;BR&gt;让英文字符串超出表格宽度自动换行 &lt;BR&gt;word-wrap: break-word; word-break: break-all; &lt;BR&gt;透明背景 &lt;BR&gt;&lt;IFRAME src="1.htm" width=300 height=180 allowTransparency&gt;&lt;/IFRAME&gt;&lt;BR&gt;获得style内容 &lt;BR&gt;obj.style.cssText &lt;BR&gt;HTML标签 &lt;BR&gt;document.documentElement.innerHTML &lt;BR&gt;第一个style标签 &lt;BR&gt;document.styleSheets[0] &lt;BR&gt;style标签里的第一个样式 &lt;BR&gt;document.styleSheets[0].rules[0] &lt;BR&gt;防止点击空链接时，页面往往重置到页首端。 &lt;BR&gt;&lt;A href="javascript:function()"&gt;word&lt;/A&gt; &lt;BR&gt;上一网页源 &lt;BR&gt;asp: &lt;BR&gt;request.servervariables("HTTP_REFERER") &lt;BR&gt;javascript: &lt;BR&gt;document.referrer &lt;BR&gt;释放内存 &lt;BR&gt;CollectGarbage(); &lt;BR&gt;禁止右键 &lt;BR&gt;document.oncontextmenu = function() { return false;} &lt;BR&gt;禁止保存 &lt;BR&gt;&lt;NOSCRIPT&gt;&lt;iframe src="*.htm"&gt;&lt;/iframe&gt;&lt;/NOSCRIPT&gt;&lt;BR&gt;禁止选取 &lt;BR&gt;地址栏图标 &lt;BR&gt;&lt;LINK href="favicon.ico" rel="Shortcut Icon"&gt;favicon.ico 名字最好不变16*16的16色,放虚拟目录根目录下 &lt;BR&gt;收藏栏图标 &lt;BR&gt;&lt;LINK href="favicon.ico" rel=Bookmark&gt;查看源码 &lt;BR&gt;&lt;INPUT onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'" type=button value=查看网页源代码&gt; &lt;BR&gt;关闭输入法 &lt;BR&gt;&lt;INPUT style="IME-MODE: disabled"&gt; &lt;BR&gt;自动全选 &lt;BR&gt;&lt;INPUT onfocus=this.select() value=123 name=text1&gt; &lt;BR&gt;ENTER键可以让光标移到下一个输入框 &lt;BR&gt;&lt;INPUT onkeydown=if(event.keyCode==13)event.keyCode=9&gt; &lt;BR&gt;文本框的默认值 &lt;BR&gt;&lt;INPUT onfocus=alert(this.defaultValue) value=123&gt; &lt;BR&gt;title换行 &lt;BR&gt;obj.title = "123 sdfs " &lt;BR&gt;获得时间所代表的微秒 &lt;BR&gt;var n1 = new Date("2004-10-10".replace(/-/g, "\/")).getTime() &lt;BR&gt;窗口是否关闭 &lt;BR&gt;win.closed &lt;BR&gt;checkbox扁平 &lt;BR&gt;&lt;INPUT style="CLIP: rect(5px 15px 15px 5px); POSITION: absolute" type=checkbox&gt;&lt;BR&gt;&lt;BR&gt;获取选中内容 &lt;BR&gt;document.selection.createRange().duplicate().text &lt;BR&gt;自动完成功能 &lt;BR&gt;&lt;INPUT autocomplete="on"&gt;打开该功能 &lt;BR&gt;&lt;INPUT autocomplete="off"&gt;关闭该功能 &lt;BR&gt;窗口最大化 &lt;BR&gt;&lt;BR&gt;无关闭按钮IE &lt;BR&gt;window.open("aa.htm", "meizz", "fullscreen=7"); &lt;BR&gt;统一编码/解码 &lt;BR&gt;alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe"))) &lt;BR&gt;encodeURIComponent对":"、"/"、";" 和 "?"也编码 &lt;BR&gt;表格行指示 &lt;BR&gt;&lt;TR onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'"&gt;&lt;BR&gt;//各种尺寸 &lt;BR&gt;&lt;BR&gt;s += "\r\n网页可见区域宽："+ document.body.clientWidth; &lt;BR&gt;s += "\r\n网页可见区域高："+ document.body.clientHeight; &lt;BR&gt;s += "\r\n网页可见区域高："+ document.body.offsetWeight +" (包括边线的宽)"; &lt;BR&gt;s += "\r\n网页可见区域高："+ document.body.offsetHeight +" (包括边线的宽)"; &lt;BR&gt;s += "\r\n网页正文全文宽："+ document.body.scrollWidth; &lt;BR&gt;s += "\r\n网页正文全文高："+ document.body.scrollHeight; &lt;BR&gt;s += "\r\n网页被卷去的高："+ document.body.scrollTop; &lt;BR&gt;s += "\r\n网页被卷去的左："+ document.body.scrollLeft; &lt;BR&gt;s += "\r\n网页正文部分上："+ window.screenTop; &lt;BR&gt;s += "\r\n网页正文部分左："+ window.screenLeft; &lt;BR&gt;s += "\r\n屏幕分辨率的高："+ window.screen.height; &lt;BR&gt;s += "\r\n屏幕分辨率的宽："+ window.screen.width; &lt;BR&gt;s += "\r\n屏幕可用工作区高度："+ window.screen.availHeight; &lt;BR&gt;s += "\r\n屏幕可用工作区宽度："+ window.screen.availWidth; &lt;BR&gt;//过滤数字 &lt;BR&gt;&lt;BR&gt;&lt;INPUT onkeypress="return event.keyCode&gt;=48&amp;amp;&amp;amp;event.keyCode&lt;=57||(this.value.indexOf('.')&lt;0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false"&gt; &lt;BR&gt;&lt;BR&gt;//特殊用途 &lt;BR&gt;&lt;BR&gt;&lt;INPUT onclick="window.external.ImportExportFavorites(true,'http://localhost');" type=button value=导入收藏夹&gt; &lt;BR&gt;&lt;INPUT onclick="window.external.ImportExportFavorites(false,'http://localhost');" type=button value=导出收藏夹&gt; &lt;BR&gt;&lt;INPUT onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)" type=button value=整理收藏夹&gt; &lt;BR&gt;&lt;INPUT onclick="window.external.ShowBrowserUI('LanguageDialog', null)" type=button value=语言设置&gt; &lt;BR&gt;&lt;INPUT onclick="window.external.AddFavorite('http://www.google.com/', 'google')" type=button value=加入收藏夹&gt; &lt;BR&gt;&lt;INPUT onclick="window.external.addChannel('http://www.google.com/')" type=button value=加入到频道&gt; &lt;BR&gt;&lt;INPUT onclick="window.external.showBrowserUI('PrivacySettings',null)" type=button value=加入到频道&gt; &lt;BR&gt;&lt;BR&gt;//不缓存 &lt;BR&gt;&lt;BR&gt;
&lt;META http-equiv=pragma content=no-cache&gt;&lt;BR&gt;
&lt;META http-equiv=Cache-Control content="no-cache, must-revalidate"&gt;&lt;BR&gt;
&lt;META http-equiv=expires content=0&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;//正则匹配 &lt;BR&gt;&lt;BR&gt;匹配中文字符的正则表达式： [\u4e00-\u9fa5] &lt;BR&gt;匹配双字节字符(包括汉字在内)：[^\x00-\xff] &lt;BR&gt;匹配空行的正则表达式：\n[\s| ]*\r &lt;BR&gt;匹配HTML标记的正则表达式：/&amp;lt;(.*)&amp;gt;.*&amp;lt;\/\1&amp;gt;|&amp;lt;(.*) \/&amp;gt;/ &lt;BR&gt;匹配首尾空格的正则表达式：(^\s*)|(\s*$)（像vbscript那样的trim函数） &lt;BR&gt;匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* &lt;BR&gt;匹配网址URL的正则表达式：http://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;amp;=]*)? &lt;BR&gt;以下是例子： &lt;BR&gt;利用正则表达式限制网页表单里的文本框输入内容： &lt;BR&gt;用正则表达式限制只能输入中文：onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" &lt;BR&gt;1.用正则表达式限制只能输入全角字符： onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" &lt;BR&gt;2.用正则表达式限制只能输入数字：onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" &lt;BR&gt;3.用正则表达式限制只能输入数字和英文：onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" &lt;BR&gt;//消除图像工具栏 &lt;BR&gt;&lt;BR&gt;&lt;IMG height=100 src="/andy/admin/mypicture.jpg" width=100 GALLERYIMG="false"&gt; &lt;BR&gt;or &lt;BR&gt;&lt;BR&gt;
&lt;META http-equiv=imagetoolbar content=no&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;//无提示关闭 &lt;BR&gt;&lt;BR&gt;[color=Green]&lt;BR&gt;function Close() &lt;BR&gt;{ &lt;BR&gt;var ua=navigator.userAgent &lt;BR&gt;var ie=navigator.appName=="Microsoft Internet Explorer"?true:false &lt;BR&gt;if(ie) &lt;BR&gt;{ &lt;BR&gt;var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE ")))) &lt;BR&gt;if(IEversion&amp;lt; 5.5) &lt;BR&gt;{ &lt;BR&gt;var str = '
&lt;OBJECT id=noTipClose classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11&gt;&lt;PARAM NAME="Width" VALUE="106"&gt;&lt;PARAM NAME="Height" VALUE="53"&gt;&lt;PARAM NAME="Command" VALUE="Close"&gt;
' &lt;br/&gt;       str += '&lt;/OBJECT&gt;'; &lt;BR&gt;document.body.insertAdjacentHTML("beforeEnd", str); &lt;BR&gt;document.all.noTipClose.Click(); &lt;BR&gt;} &lt;BR&gt;else &lt;BR&gt;{ &lt;BR&gt;window.opener =null; &lt;BR&gt;window.close(); &lt;BR&gt;} &lt;BR&gt;} &lt;BR&gt;else &lt;BR&gt;{ &lt;BR&gt;window.close() &lt;BR&gt;} &lt;BR&gt;} [/color]&lt;img src ="http://blog.soease.com/andy/aggbug/585.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>andy</dc:creator><title>.text引用第三方组(控)件明细</title><link>http://blog.soease.com/andy/articles/583.html</link><pubDate>Thu, 03 Aug 2006 09:18:00 GMT</pubDate><guid>http://blog.soease.com/andy/articles/583.html</guid><wfw:comment>http://blog.soease.com/andy/comments/583.html</wfw:comment><comments>http://blog.soease.com/andy/articles/583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.soease.com/andy/comments/commentRss/583.html</wfw:commentRss><trackback:ping>http://blog.soease.com/andy/services/trackbacks/583.html</trackback:ping><description>&lt;P&gt;.text includes these components and contrls &lt;/P&gt;
&lt;P&gt;MetaBuilders.&lt;A href="http://dev.21tx.com/web/" target=_blank&gt;&lt;FONT color=#3366cc&gt;Web&lt;/FONT&gt;&lt;/A&gt;Controls.DefaultButtons.dll&lt;BR&gt;MetaBuilders.WebControls.ExpandingPanel.dll&lt;BR&gt;MetaBuilders.&amp;nbsp;&amp;nbsp; .....&lt;BR&gt;you can find these contrls on this site&lt;BR&gt;&lt;A href="http://www.metabuilders.com/Tools/DefaultButtons.aspx"&gt;&lt;FONT color=#3366cc&gt;http://www.metabuilders.com/Tools/DefaultButtons.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ActiproSoftware.CodeHighlighter.dll&amp;nbsp;&amp;nbsp; &lt;BR&gt;ActiproSoftware. ....&lt;BR&gt;you can find these contrls on this site&lt;BR&gt;&lt;A href="http://www.actiprosoftware.com/Products/DotNet/CodeHighlighter/Default.aspx"&gt;&lt;FONT color=#3366cc&gt;http://www.actiprosoftware.com/Products/DotNet/CodeHighlighter/Default.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;CookComputing.&lt;A href="http://dev.21tx.com/web/xml/" target=_blank&gt;&lt;FONT color=#3366cc&gt;XML&lt;/FONT&gt;&lt;/A&gt;Rpc.dll&lt;BR&gt;you can find this component on this site,current version is 0.9. dottext useing 0.81&lt;BR&gt;&lt;A href="http://www.xml-rpc.net/"&gt;&lt;FONT color=#3366cc&gt;http://www.xml-rpc.net/&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;freetextbox.dll&lt;BR&gt;you can find this component on this site&lt;BR&gt;&lt;A href="http://www.freetextbox.com/"&gt;&lt;FONT color=#3366cc&gt;http://www.freetextbox.com/&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Lucene&lt;A href="http://dev.21tx.com/dotnet/" target=_blank&gt;&lt;FONT color=#3366cc&gt;.net&lt;/FONT&gt;&lt;/A&gt;.dll&lt;BR&gt;you can find this component on this site&lt;BR&gt;&lt;A href="http://sourceforge.net/projects/lucenedotnet"&gt;&lt;FONT color=#3366cc&gt;http://sourceforge.net/projects/lucenedotnet&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;SgmlReaderDll.dll&lt;BR&gt;you can find component on this site&lt;BR&gt;&lt;A href="http://cvs.sourceforge.net/viewcvs.py/rssbandit/12061/RssComponents/SgmlReaderDll.dll?rev=1.1.1.1&amp;amp;view=log"&gt;&lt;FONT color=#3366cc&gt;http://cvs.sourceforge.net/viewcvs.py/rssbandit/12061/RssComponents/SgmlReaderDll.dll?rev=1.1.1.1&amp;amp;view=log&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;skmRss.dll&lt;BR&gt;you can find this component on this site&lt;BR&gt;&lt;A href="http://www.gotdotnet.com/workspaces/releases/viewuploads.aspx?id=6a116a0f-66c4-4f91-9e13-a0d00960b9ad"&gt;&lt;FONT color=#3366cc&gt;http://www.gotdotnet.com/workspaces/releases/viewuploads.aspx?id=6a116a0f-66c4-4f91-9e13-a0d00960b9ad&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;P.S.&lt;/P&gt;
&lt;P&gt;please wait for looking forward to other opensource project&lt;/P&gt;&lt;img src ="http://blog.soease.com/andy/aggbug/583.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>andy</dc:creator><title>电影服务器架设指南</title><link>http://blog.soease.com/andy/articles/557.html</link><pubDate>Thu, 27 Jul 2006 13:29:00 GMT</pubDate><guid>http://blog.soease.com/andy/articles/557.html</guid><wfw:comment>http://blog.soease.com/andy/comments/557.html</wfw:comment><comments>http://blog.soease.com/andy/articles/557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.soease.com/andy/comments/commentRss/557.html</wfw:commentRss><trackback:ping>http://blog.soease.com/andy/services/trackbacks/557.html</trackback:ping><description>在当今的流媒体服务器市场有两个&amp;#8220;大腕&amp;#8221;，一个是RealNetworks公司的Helix Server，另一个就是微软的Windows Media Services 。RealNetworks的Helix Server优势在于兼容众多操作系统平台，因此在大型的提供电影点播的网站，也许会运行LINUX等操作系统，也就只能用RealNetworks的Helix Server。而微软的媒体服务器则是WINDOWS 2000或WINDOWS2003服务器版操作系统自带，基本是免费，当然它是一个服务器组件，它不会默认安装，得指定安装才行。&lt;BR&gt;[color=royalblue][/color]&lt;BR&gt;  本文只介绍基于WINDOWS的流媒体服务器&amp;#8212;&amp;#8212;Windows Media Services，因这是操作系统自带，配置相对方便，也更好用和容易管理，功能也很强大。两个WINDOWS服务器操作系统带的流媒体服务器版本也不同，后一个是最新的，它称为Windows Media Services 9系列（见图1），它最好运行在WINDOWS 2003服务器操作系统下。在本文我们也将在基于WINDOWS 2003操作系统，以WINDOWS MEDIA SERVICES 9系列为对象进行案例的介绍。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Windows Media Services 是微软提供的一种通过 Internet（互联网） 或 Intranet（内联网） 向客户端传输音频和视频内容的平台。客户端可以是使用播放机（例如 Windows Media Player）播放内容的PC计算机或设备（最终用户）；也可以是用于代理、缓存或重新分发内容的另一台运行 Windows Media Services媒体服务器。&lt;BR&gt;&lt;BR&gt;  Windows Media 服务器可从多种不同的&amp;#8220;源&amp;#8221;接收内容以进行发布。包括三种方式：&lt;BR&gt;&lt;BR&gt;  1.预先录制的存储在本地服务器上的内容，也可以从联网的文件服务器上提取；&lt;BR&gt;&lt;BR&gt;  2.可以使用数字录制设备（摄象机，话筒）记录实况，经编码器（编码软件）处理后发送到 Windows Media 服务器进行广播；&lt;BR&gt;&lt;BR&gt;  3.Windows Media Services 还可以重新广播从远程另一个Windows Media 服务器上的发布点传输过来的内容。&lt;BR&gt;&lt;BR&gt;  如果计划传输实况内容，则服务器将连接到支持媒体格式的编码软件（如 Windows Media 编码器）。你可以使用 Windows Media 编码器 9 系列（下载地：[url]http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24&amp;displaylang=zh-cn&amp;Hash=C39WQB8[/url]），Microsoft Producer for Microsoft Office PowerPoint 2003（下载地：[url]http://www.microsoft.com/downloads/details.aspx?FamilyID=1b3c76d5-fc75-4f99-94bc-784919468e73&amp;displaylang=zh-cn[/url] ），Windows Movie Maker等，这些软件可以从微软公司的网站下载。&lt;BR&gt;&lt;BR&gt;在介绍Windows media server的架设之前，让我们先来了解什么是&amp;#8220;流媒体&amp;#8221;（Stream Media）；什么是&amp;#8220;单播&amp;#8221;和&amp;#8220;多播&amp;#8221;；什么是&amp;#8220;点播发布点&amp;#8221;和&amp;#8220;广播发布点&amp;#8221;等一些专业技术和微软的专有术语。&lt;BR&gt;&lt;BR&gt;流媒体&lt;BR&gt;&lt;BR&gt;  流媒体顾名思义，可以认为是流动的媒体，以连续流（数据包）的形式通过网络传递数字媒体。指的是影音等媒体文件被分解编码成数字信号象流水一样流向目的地，并在到达目的地时由播放器还原为图像或声音。这种方法在接收的同时呈现内容，从而可以连续地播放数据，而不必等待下载整个文件，流式处理的文件播放完后，它不会存储在计算机中。   &lt;BR&gt;&lt;BR&gt;发布点&lt;BR&gt;&lt;BR&gt;  发布点是Windows Media服务器使用来将客户端对媒体内容的访问请求转换为放置该内容的服务器上的物理路径（呈现给播放器的是一个网址，类似于网站的根目录）。发布点是网管人员用来标志某种类型的媒体服务的点，通过媒体服务器的控制界面，可以看到这些点的工作状态并随时管理。在客户端成功连接到发布点之后，Windows Media 服务器管理该连接并传输该内容，客户端通过连接到发布点而能访问来自服务器的内容流。有两种类型的发布点：&amp;#8220;点播发布点&amp;#8221;和&amp;#8220;广播发布点&amp;#8221;。一个 Windows Media 服务器可以配置为运行多个发布点，可以广播和点播同时存在。点播和广播有一些重要的区别。&lt;BR&gt;&lt;BR&gt;  （1）使用点播发布点&lt;BR&gt;&lt;BR&gt;  如果你希望由客户端来控制播放，可以操作播放器的播放、暂停、快进等功能，则使用点播发布点。这种类型的发布点最常用于以文件、播放列表或目录为源的内容。当客户端连接到该发布点时，将从头开始播放内容，最终用户可以使用播放机上的播放控件来暂停、快进、倒回、跳过播放列表中的项目或停止。只有当客户端已连接且可以接收流时，点播发布点才可以传输内容。从点播发布点传输的内容总是以单播流的形式传递。这种方式适用于媒体的点播服务，这也是电影服务器要采用的方式，也是本案要采用和重点介绍的方案。 &lt;BR&gt;&lt;BR&gt;  （2）使用广播发布点&lt;BR&gt;&lt;BR&gt;  如果你希望在服务器上控制播放和传输内容，则使用广播发布点。这象是电台或电视台播放节目的方式，节目由服务器持续播放，你错过了就只能错过。这使用户有看电视节目的类似体验。它最常用于从编码器、远程服务器或其他广播发布点传递实况流。当客户端连接到广播发布点时，客户端就加入到已在传递的广播中。客户端可以启动和停止流，但不会停止服务器的广播，也不能暂停、快进、倒回或跳过。广播发布点也可以用来传输文件和文件播放列表，但是客户端播放机不能像控制点播那样控制播放。给用户的感觉象是在接收实况编码流广播，这样其实还不如采用点播发布点方式。&lt;BR&gt;&lt;BR&gt;  广播发布点在服务器端启动时立即传输，并一直继续，直到它被管理员停止或内容传输完。启动可以是由管理员来人工启动；也可以在连接第一个客户端时自动启动。这种方式适用于较适合于企业的视频会议和比如校园网中足球赛的实况网络直播等。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;单播和多播是流的传递方式&lt;BR&gt;&lt;BR&gt;  （1）单播流是服务器和客户端之间建立的&amp;#8220;一对一&amp;#8221;连接，每个客户端都向服务器请求接收一个不同的流且只有那些请求流的客户端才接收流。以单播流方式传递内容时既可以用于建点播发布点又可以用于建广播发布点。单播流式传输也是 Windows Media 服务器用来传递内容的默认方法，默认处于启用状态。 实际上也是最常用的方式。&lt;BR&gt;&lt;BR&gt;  下图显示通过使用点播发布点以单播流方式传递内容的示例。（图2）&lt;BR&gt;&lt;BR&gt;正如上图所示，在名为 Server1 的 Windows Media 服务器上有一个名为 TV1 的点播发布点。内容可在本地服务器或网络上的文件服务器上安置。您可以将特定&amp;#8220;文件&amp;#8221;、&amp;#8220;目录&amp;#8221;、&amp;#8220;播放列表文件&amp;#8221;作为来源。在上例中，发布点将存储在本地 Server1 上的播放列表文件作为来源。创建一个为用户提供指向内容的 URL。因为内容是以单播流方式传递的，所以每个播放机都有一个到 Server1 的唯一连接。 &lt;BR&gt;&lt;BR&gt;  由于本案的电影服务器属于点播发布点，所以点播发布点在对Windows Media 服务器的设置中就没有单播和多播的选择，只会是系统默认的单播方式，服务器系统不用作另外的设置。&lt;BR&gt;&lt;BR&gt;  （2）多播流是指 Windows Media 服务器和接收流的客户端之间的一对多关系。利用多播流，服务器向网络上的一个D类多播 IP 地址传输流，客户端通过向该 IP 地址订阅来接收流。所有的客户端都接收相同的流。无论有多少个客户端接收流，服务器只向多播地址传输一个流。&lt;BR&gt;&lt;BR&gt;  使用多播流会节省网络带宽，对于带宽较低的广域网络可能非常有用，这种方式需要路由器的参与，非常适合于跨互联网的大型视频会议。以多播流方式传递内容时只能用建广播发布点。另外路由器必须已启用多播功能。&lt;BR&gt;&lt;BR&gt;  在网吧应用中，除了做电影、音乐的点播服务，也许我们也会有广播服务的需求，比如：需要在网络内实况转播电视足球赛。在建广播发布点时，会遇到服务器系统给出的以&amp;#8220;单播&amp;#8221;或者&amp;#8220;多播&amp;#8221;传递流的选择。对于局域网环境来说，带宽足够高，同时也没有专业路由器进行&amp;#8220;多播&amp;#8221;，所以应选择用&amp;#8220;单播&amp;#8221;来传递流。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;在进行Windows Media Services服务器的设置之前，由于它不是默认安装，我们需要进行组件的安装。进入&amp;#8220;控制面板&amp;#8221;，点击&amp;#8220;添加或删除程序&amp;#8221;，点击&amp;#8220;添加/删除Windows组件&amp;#8221;，在&amp;#8220;Windows组件向导&amp;#8221;中选中&amp;#8220;Windows Media Services&amp;#8221;，插入WINDOWS2003安装盘，然后点击&amp;#8220;下一步&amp;#8221;进行安装。（图3）&lt;BR&gt;&lt;BR&gt;在安装完Windows Media Services服务器以后，我们就可以开始设置媒体服务器了。进入Windows2003的&amp;#8220;开始&amp;#8221;&amp;#8212;&amp;#8220;程序&amp;#8221;&amp;#8212;&amp;#8220;管理工具&amp;#8221;&amp;#8212;点击&amp;#8220;Windows Media Services&amp;#8221;就可以以打开媒体服务器的管理界面。&lt;BR&gt;&lt;BR&gt;  设置 Windows Media 服务器的基本步骤包括：添加和配置&amp;#8220;发布点&amp;#8221;。Windows Media 服务器可以配置两种类型的发布点：广播发布点和点播发布点。如果要传输编码器的实况内容，则选择广播发布点。如果打算传输媒体文件（扩展名为：.asf、.wma、.wmv、.mp3 和 .wsx）且希望允许用户控制内容的播放（例如，暂停、倒回或快进对播放器控制），则最好选择点播发布点，本案也就选择它。&lt;BR&gt;&lt;BR&gt;  本文接下来的小节将只集中介绍要实现网友所要求的建立电影服务器的所要进行的配置。&lt;BR&gt;&lt;BR&gt;  对于Windows Media 服务器的各种术语不是很熟悉的初级用户，Windows Media 服务器给我们提供了方便添加发布点的向导。小酷得承认即使是这样，对于初次使用微软的媒体服务器的人来说，仍然会对它的每一步的术语感到茫然。但是按照本文上面介绍的重要术语和对这个方案的实例介绍，我相信读者们应能弄出一个电影服务器来。&lt;BR&gt;&lt;BR&gt;打开Windows Media 服务器以后，现在我们要使用&amp;#8220;添加发布点向导&amp;#8221;创建一个名字为&amp;#8220;movie&amp;#8221;的&amp;#8220;点播发布点&amp;#8221;。 操作步骤如下：&lt;BR&gt;&lt;BR&gt;  1． 在Windows Media 服务器主界面的左边栏的点击服务器图标，点击&amp;#8220;发布点&amp;#8221;，点击鼠标右键，出现的对话栏时，点击&amp;#8220;添加发布点（向导）&amp;#8221;，点击&amp;#8220;下一步&amp;#8221;。（图4、5）&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;2．添加发布点的名称，填入我们要的电影服务的名称&amp;#8220;movie&amp;#8221;。点击&amp;#8220;下一步&amp;#8221;。（图6）&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;3．出现了&amp;#8220;内容类型&amp;#8221;选择对话框，要我们选择将要发布的内容的类型。由于我们要发布的是存在本地服务器硬盘上的电影文件（当然是上文所提到的文件格式，若还不是，就需要各种媒体转换程序来进行转换了，比如：Windows media encoder 9），所以选择最后一个选项&amp;#8220;目录中的文件&amp;#8221;。点击&amp;#8220;下一步&amp;#8221;。（图7）&lt;BR&gt;&lt;BR&gt;4．出现了&amp;#8220;发布点类型&amp;#8221;选择对话框。要选择&amp;#8220;点播发布点&amp;#8221;方案，选中它。点击&amp;#8220;下一步&amp;#8221;。（图8）&lt;BR&gt;&lt;BR&gt;5．出现了&amp;#8220;目录位置&amp;#8221;对话框，在这里要求我们给服务器指定媒体文件所在的目录。点击&amp;#8220;浏览&amp;#8221;，出现的对话框中在&amp;#8220;数据源&amp;#8221;处点击目录所在的硬盘符，在&amp;#8220;位置&amp;#8221;处点击所在的目录。然后，点击右边的&amp;#8220;选择目录&amp;#8221;就回到原来的对话框。这时我们还可以进一步点中&amp;#8220;允许使用通配符&amp;#8221;的复选钮。点击&amp;#8220;下一步&amp;#8221;。（图9)&lt;BR&gt;&lt;BR&gt;6．出现了&amp;#8220;内容播放&amp;#8221;对话框，这两个复选钮可随意选择。点击&amp;#8220;下一步&amp;#8221;。（图10）&lt;BR&gt;&lt;BR&gt;7．出现了&amp;#8220;单播日志记录&amp;#8221;对话框，这个复选钮也是随意选择。点击&amp;#8220;下一步&amp;#8221;。（图11）&lt;BR&gt;&lt;BR&gt;8．出现一个列出上述操作摘要的对话框。点击&amp;#8220;下一步&amp;#8221;。&lt;BR&gt;&lt;BR&gt;  9．到此基本完成添加发布点的工作。但是向导还提示我们可以进行进一步的创建发布点的&amp;#8220;公告文件&amp;#8221;，该文件为播放机提供在连接到 Windows Media 服务器接收内容时需要的信息。但是对于我们要建的电影服务器，要实现的是点播的功能，对目录中的文件进行一个个的精确访问，而公告文件是对整个目录的公告，显然不符合我们的要求。所以在这步，我们要点消&amp;#8220;完成向导后&amp;#8221;这个复选钮，迫使向导就此结束，不再进行后续操作。（图12）&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;至此，我们创建的&amp;#8220;movie&amp;#8221;这个电影服务器的发布点已经完成。Movie发布点也出现在主界面的左边栏。接下来的配置发布点，相对于我们这个应用来说，其实很简单，只需点击Movie右边栏中的 &amp;#8220;属性&amp;#8221;选项卡，点击&amp;#8220;类别&amp;#8221;中的&amp;#8220;常规&amp;#8221;，再启用常规中的三个属性即可。（图13）&lt;BR&gt;&lt;BR&gt;  接下来我们应测试一下这个发布点（电影服务器）是否已能正常工作。有两种测试方式：一是点击&amp;#8220;源&amp;#8221;这个选项卡，然后点击底下的那个播放器的图标，就可以测试流了。（图14、15）但是，在这里要提的是，你得先确保服务器已接入网络，要不然会弹出一个奇怪的出错，提示说：&amp;#8220;windows media player无法播放该文件，请连接到Internet&amp;#8221;，这个出错提示，对于初学者会来说会感到一脸茫然，感觉每一步都没有配错呀，怎么还会出错，很受打击。（图16）老实说，我对微软的这个出错提示很是有意见，不知者会不停地建发布点，没完没了，最后还是测试不通过，小酷曾深陷其中，因此有感而发。第二测试流的方式，当然是在网络上的一台客户机上访问这个发布点的URL地址了，如：[url]mms://LANSHAN/movie/[/url]。注意，LANSHAN是笔者这台服务器的名称，movie就是发布点名称了。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;在设置 Windows Media 服务器和要传输的内容之后，需要让用户知道该电影内容如何访问，若是单单给用户如[url]mms://LANSHAN/movie/[/url]这个链接，播放器将会随机打开播放目录中了任意一个电影，这样的结果并不符合我们点播电影的要求。所以，我们还是建议用精确的URL地址 来访问电影内容，也就是上面的地址最后面要加电影文件的文件名，如：[url]mms://LANSHAN/movie/[/url]大海啸DV拍摄合集1.wmv ，把这样的链接做成电影网页（也许可以从互联网找到第三方的电影网站源码，这样建网站更方便），让观众能看到电影片名的列表，点击打开这个精确的URL地址所对应的电影进行播放，真正做到点播操作。&lt;BR&gt;&lt;BR&gt;  小结：电影服务器在大型网吧中的应用显得很重要，现在网吧都提供给网友观看电影的服务，但若在文件服务器开个电影文件的共享文件夹，让用户直接点击打开，这样会很耗费这个文件服务器的系统资源，严重的情况会使服务器当机。因此考虑用随手可得的微软的Windows Media 服务器来承担媒体的发布工作，就可以避免这种情况的发生。Windows Media 服务器当然也可以用来发布MP3音乐，这也是网吧中网友所喜爱的。&lt;img src ="http://blog.soease.com/andy/aggbug/557.html" width = "1" height = "1" /&gt;</description></item></channel></rss>