狗吃屎,狼吃肉,因为他们一个顺从,一个有野性。。。。有团队,有核心。。。。我喜欢狼。。。。但我喜欢羊爱上狼。。。。
成长加油站
优柔寡断难成大器
曾发生过这样一件事。一位伐木工人在伐木时不幸被伐下的树压断了大腿,流血不止。他深知,若是不将压在大腿上的大树移走,听凭血流下去,将会因失血过多而丧命。他想用电锯将压在腿上的树锯断移走,但是,怎么都达不到目的。怎么办?情急之中他当机立断,用电锯将自己的大腿锯断。结果如何?大腿丢掉了,但是性命保住了。
“当机立断,不受其乱。”这位伐木工人所具有的决策果断是一种宝贵的人格品质。但是,在现实生活中有很多人因缺乏这种优秀品质在关键时刻迟疑、拖拉、犹豫不决,终致错过成功的大好时机而以失败告终。
那么,是什么原因使那些人优柔寡断呢?
这是因为这类人对事物、对工作缺乏一种积极自觉、主动的态度,他们在选择行动目的时,不太懂得它的重要意义,也不清楚可能的后果,经常是患得患失。
优柔寡断的人对事物、对工作通常还会缺乏深思熟虑的考虑。很难设想,一个总是冒冒失失对什么事情都是轻举妄动的人能够具备决策果断的品质。另外,缺乏独立、自信,总不能以一种批判性的态度出现在他人的面前。
至于那些对事物、对工作缺乏全局的理解和判断,不能审时度势,不能抓住问题目的要害的人,他们自己的行动就缺乏智慧的品质,不是轻举妄动就是犹豫不决,他们根本就不可能具备成功的潜质——果断勇敢。
优柔寡断是人成功的大敌,它使人失去很多成功的机会。
一般来说,想有所作为的人是不会犹豫的。这类人将人生看作是奋斗的人生,总想做一点对社会有利的事,总想自己发展得好一点,因而不怕困难,也不畏艰难,在遇到困难的、艰巨的事情时就要果断地去拼一拼,去搏一搏,这类人是决不会躺在安蛋壳中坐享现成之福。
无私的人是不会犹豫不决的。《新增广贤文》说得好:“患得患失前路窄,心底无私天地宽。”如果一个人考虑问题都是从我出发,从自己的名利出发,那么,他处理问题时,必然会前怕虎、后怕狼,在决策时,总想到那可怕的后果,总想到万一发生意外对自己的前途的影响,一个人若是总处于这样的境地,在采取决定时必定是犹豫不决的,迟迟下不了决心的,而且经常是做出决定之后是又反悔的。
有知识的人是不会犹豫不决的。我们的先哲曾说过这样一句名言:“犹豫不决是以无知为基础的。”作为当机立断的果断靠的是什么呢?靠的是一个人对问题的了解是不是全面,对情况的理解是不是深刻,对问题解决的技能是不是完全,总之一句话。果断的人与普通人一样,他同样会有着复杂的、剧烈的思想斗争,同样会有对立的动机和激烈的情绪感受,但是,由于他的果断是以知识作为后盾的,所以这种果断是理性的,决不是武断的代名词,更不是一种随意的轻举妄动。请记住这一句话:以科学知识为后盾的理智是不会骗人的。
思想稳定、情感集中的人是不会犹豫不决的。这样的人具有足够的力量去克服矛盾的思想和情感,将自己的行动引到正确的轨道上来。而那些思想、情感分散的人,则永远陷于矛盾斗争的痛苦之中,或是找不出明确的办法,或是在痛苦之中作出仓促的、草率的决定来。
对自己充满自信的人是不会犹豫不决的。克服犹豫不决的最好办法是肯定自己的能力,坚信自己什么都干。犹豫不决的人总是对自己说:“这件事我干得了吗?恐怕干不了吧!”自己还没有干就担心干不了,怎么能成功?!而那些自信的人的思想方法是:“我会干好的。没问题。”这无疑是在对自己打气,信心一有,也就不会有犹豫不决了。
有勇气的人是不会犹豫不决的。无论做什么事情都要有一股破釜沉舟的勇气,都要有一种“不入虎穴,焉得虎子”的敢于冒险精神。池田大作在《人生寄语》中说得好:“要有战胜自己的勇气。人类对自己总是姑息软弱的,尽管平时一再说要坚强、再坚强,可一面对自己,就连所说的一半也实行不了啦。一切功劳归于自己,一切错误归于别人,这丑恶的一面是每个人都具备的。要战胜如此软弱、丑恶的自己,可以说必须拿出最大的勇气。”
请记住德国伟大的诗人歌德以下这句富有哲理的话:“长久地迟疑不决的人,常常找不到最好的答案。”
曾发生过这样一件事。一位伐木工人在伐木时不幸被被伐下的树在大腿之上,而且流血不止,因是单独伐木,周围人无人救助,自己也没带紧急救助的医疗器具,他深知。若是不将压在大腿上的大树移走,听凭血流下去,将会因失血过多而丧命。他也想用电锯将压在腿上的树锯断移走,但是,怎么都达不到目的。怎么办?情急之中他当机立断,用电锯将自己的大腿锯断。结果如何?大腿丢掉了,但是性命保住了。

  应该说,这位伐木工人的决策是很果断的,若是迟疑不决,优柔寡断的,光想等他人来救,或是总考虑不用麻醉锯下自己的大腿那是多么痛苦一件事啊……那么,其后果将是不堪设想的。所以他的这一决策并亲自用电锯将自己的大腿锯下,是非凡的,是需要这位伐木工人付出极大的勇气啊!

  “当机立断,不受其乱。”这位伐木工人就具有决策果断这一宝贵的人格品质。

  但是,在现实生活中具有这种优秀品质的人并不是很多,相反地,只要你认真观察周围的人,有很多人都是在关键时刻办事迟疑、难以取舍、拖拖拉拉、犹豫不决,因错过了成功的大好时机而以失败告终。

   那么,是什么原因使那些人优柔寡断呢?

   这是因为当这类人遇到困难的、两难的或是紧急的情况下,不能够迅速地、合理地、是非分明地、不失时机地采取必要的措施,从而能坚决地、顺利地解决问题的一种意志品质。譬如,这位伐木工人若是在自己遇到紧急情况下不作出用电锯锯断自己大腿的决断,肯定会因鲜血流得过多而保不住自己的性命。

   这是因为这类人对事物、对工作缺乏一种积极自觉、主动的态度,他们在选择行动目的时,不太懂得它的重要意义,也不清楚知道可能的后果,经常是患得患失。譬如,假如这位伐木工人的缺乏行动主动性,不懂得不作出这样的决断就等于是死路一条的可怕后果,就很难作出这样的决断来。很难设想,一个对什么事情都无动于衷、对什么事情都老气横秋,会有这种品质。

   这是因为这类人对事物、对工作都缺乏深思熟虑的考虑。我们能说这位伐木工人的行为是轻举妄动、不负责任的吗?不,决不能。他的自己锯自己的大腿是在锯与不锯两种选择权衡利弊的结果。很难设想,如果一个人对工作总是冒冒失失的,对什么事情都是轻举妄动的,处理问题都是忧愁寡断的,会有这种品质。

   这是因为这类人对事物、对工作考虑问题的出发点,总是缺乏独立、自信的,总不能以一种批判性的态度出现在他人的面前。设想一下若是那位伐木工平时总是依懒他人,自己一点主见都没有,总是看着他人的脸色办事的,什么事情都畏畏缩缩的,他会作出这个决断吗?

   这是因为这类人对事物、对工作的处理方式,总是缺乏快速的、敏捷的,总要比一般人慢得多的速度去处理,因而显得非常没有效率。为什么?因为这类人在制定计划时总是显得缺乏信心、优柔寡断,在行动时总是显得迟疑不决的。

  这是因为这类人对事物、对工作缺乏全局的理解和判断,不能审时度势,不能抓住问题目的要害,因而自己的行动就缺乏智慧的品质,不是轻举妄动就是犹豫不决。所以,英国大文学家莎士比亚说得好:“智虑是勇敢的最大要素。”

  的确,优柔寡断是人成功的大敌。它会使人失去很多成功的机会。俗话说得好:“机不可失,失不再来。”有的人就是因为患得患失,因为优柔寡断而不知道利用时机,结果呢?机会就如风驰电掣般地从你身边飞走,等待你的就只有后悔了。为什么有不少人永远只能漂流在狂风暴雨的汪洋大海里?为什么永远到不了成功的目的性?原因就在于太优柔寡断。

  那么,什么样的人才会具有不犹豫不决、作事果断的品质呢?

   一般来说,想有所作为的人是不会犹豫的。这类人将人生看作是奋斗的人生,总想作一点对社会有利的事,总想自己发展得好一点,因而不怕困难,也不畏艰难,在遇到困难的、艰巨的事情时就要果断地去拼一拼,去搏一搏,这类人是决不会躺在安蛋壳中坐享现成之福。

   无私的人是不会犹豫不决的。《新增广贤文》说得好:“患得患失前路窄,心底无私天地宽。”如果一个人考虑问题都是从我出发,从自己的名利出发,那么,他处理问题时,必然会前怕虎、后怕狼,在决策时,总想到那可怕的后果,总想到万一发生意外对自己的前途的影响,一个人若是总处于这样的境地,在采取决定时必定是犹豫不决的,迟迟下不了决心的,而且经常是做出决定之后是又反悔的。

   有知识的人是不会犹豫不决的。我们的先哲曾说过这样一句名言:“犹豫不决是以无知为基础的。”作为当机立断的果断靠的是什么呢?靠的是一个人对问题的了解是不是全面,对情况的理解是不是深刻,对问题解决的技能是不是完全,总之一句话。果断的人与普通人一样,他同样会有着复杂的、剧烈的思想斗争,同样会有对立的动机和激烈的情绪感受,但是,由于他的果断是以知识作为后盾的,所以这种果断是理性的,决不是武断的代名词,更不是一种随意的轻举妄动。请记住这一句话:以科学知识为后盾的理智是不会骗人的。

  思想稳定、情感集中的人是不会犹豫不决的。这样的人具有足够的力量去克服矛盾的思想和情感,将自己的行动引到正确的规道上来。而那些思想、情感分散的人,则永远陷于矛盾斗争的痛苦之中,或是找不出明确的办法,或是在痛苦之中作出仓促的、草率的决定来。

  对自己充满自信的人是不会犹豫不决的。克服犹豫不决的最好办法是肯定自己的能力,坚信自己什么都能干。犹豫不决的人总是对自己说:“这件事我干得了吗?恐怕干不了吧!”自己还没有干就担心干不了,怎么能成功?!而那些自信的人的思想方法是:“我会干好的。没问题。”这无疑是在对自己打气,信心一有,也就不会犹豫不决了。

  有勇气的人是不会犹豫不决的。无论做什么事情都要有一股破釜舟的勇气,都要有一种“不入虎穴,焉得虎子”的敢于冒险精神。池田大作在《人生寄语》中说得好:“要有战胜自己的勇气。人类对自己总是姑息软弱的,尽管平时一再说要坚强、要坚强,可一面对自己,就连所说的一半也实行不了啦。一切功劳归于自己,一切错误归于别人,这丑恶的一面是每个人都具备的。要战胜如此软弱、丑恶的自己,可以说必须拿出最大的勇气。”

  总之,请记住德国伟大的诗人歌德以下这句富有哲理的话:“长久地迟疑不决的人,常常找不到最好的答案。”阅读全文
我是一个很优柔挂断的女孩,我和男友在大学相恋两年,毕业一年了,我们还在一起,只是我有了一份稳定的工作,而他至今没有工作,我一直帮他,鼓励他,安慰他。不敢让他感到丝毫的压力和自卑。但是在他几次失败之后,我还是很失望,很伤心。我发现他找工作不够努力,眼光还高,现在他的依赖心理越来越强。我不知道我苦心维持这样的爱情有何意义。
我的亲戚给我介绍的男友,条件都很好,但我还是留恋我们在一起三年的时光,我对他的感情更多的是一种亲情和怜悯。但是他很爱我。
我不知道如何说分手,他是一个很敏感的人,我不知道怎样作可以让他受最小的伤害。

朋友们,有过相同经历的女孩们,帮我!谢谢


怎么说,都是伤害.还不如快一点的.也好刺激他猛醒.

其實不管怎麼表達傷害都是有的,你認為是最小的,可是在他看來分手就是最大的傷害。如果你覺得他真的不值得在一起,大家還是坦誠的說清楚,這樣比較好一點。分手時可以搞一個浪漫的分手燭光晚宴。大家好來好散。希望你們都可以找到彼此的幸福!



肯定会伤害,除非他找到现在另外的一份感情,不过错觉得第一个男友应该是最好的,不要轻易说分手。
切记切记
这是忠告



适者生存不适者淘汰,他应该比谁都明白这个问题啊,像他这样依赖女人的男人,有什么资格说美好的前程\事业啊,爱是彼此的共鸣而不是同情与怜悯.没有感情了就趁早了断,省得夜长梦多.



肯定会伤害,除非他找到现在另外的一份感情,不过错觉得第一个男友应该是最好的,不要轻易说分手。
切记切记
这是忠告
我太支持以上你所说的观点,只有当你失去了的时候才明白,现在你无法体会,去问问那些过来人吧,去问那些失去过初恋的人吧


有句老话:长痛不如短痛 痛快点 你越是这样考虑这样那样的 最后心一软不分啦 伤害的还是自己 其实做起来很为难 还是要看你自己有没有决心 如果你还在乎他就请站在他人的角度考虑 不要等到失去后才知道珍惜 人都是感性动物 如果你只是因为对他没信心而分手的话我想没有这个必要的还是要靠你的帮助跟沟通把你的优点传与他 他是需要你的点化花为他的动力方能达成目


我的看法是有些东西就是需要对男人要狠一点..........没有狼性&微机感的人will disappear on earth!

最近发现我的IE不能打开新窗口,具体表现形式是:用鼠标左键点击超链接没有反应,用鼠标右键点击超链接,在弹出的菜单中选择“在新窗口打开”也没有动静。怎么办呢?经过查找试验,终于找到了解决方法:

  1、在“开始”菜单中打开“运行”窗口,在其中输入“regsvr32 actxprxy.dll”,然后“确定”,接着会出现一个信息对话框“DllRegisterServer in actxprxy.dll succee
ded”,再次点击“确定”。

  2、再次打开“运行”窗口,输入“regsvr32 shdocvw.dll”,“确定”后在出现的信息对话框中点击“确定”。

  3、重新启动Windows,运行IE,随便打开一个网页,点击一个超链接,你会发现IE又能打开新窗口。再试试用鼠标右键选择“在新窗口打开”,问题解决。






ie二级网页打不开 复制粘贴不能用
方法一:重新注册以下DLL文件。
regsvr32 Shdocvw.dll
regsvr32 Shell32.dll (注意这个命令,先不用输)
regsvr32 Oleaut32.dll
regsvr32 Actxprxy.dll
regsvr32 Mshtml.dll
regsvr32 Urlmon.dll

第二个命令可以先不用输,输完这些命令后重新启动windows,如果发现无效,再
重新输入一遍,这次输入第二个命令。


方法二:COMCTL32.DLL文件产生的问题。
在升级IE或windows时这个文件可能被替换了,也许新版本的COMCTL32.DLL文件有
BUG。
找一张windows安装光盘,搜索它,找到一个名为COMCTL32.DL_的文件,把它拷贝
出来,用winrar提取 这个文件为COMCTL32.DLL文件,并覆盖现有文件。
(我不知道98光盘里有没有这个文件,我用的是2000光盘)


方法三:用方法一重新注册regsvr32 Oleaut32.dll时出错或重新注册后也无效。

在windows光盘里提取Oleaut32.dll文件,在MDAC_IE5.CAB文件包里,也是用winrar
提取并覆盖现有。


方法四:DCOM属性设置错误。
详细参见:http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q274696

1。点击“开始”-->“运行”
2。输入“Dcomcnfg”。
3。弹出的提示框选“是”。
4。点“默认安全机制”标签。
5。在“默认访问权限”栏点“编辑默认值”。
6。看看“名称”下面的栏里有没有“SYSTEM”和“Interactive”项,如果没有,
则添加。
7。点击OK,点击OK。

方法五:下载这个工具也许有助于修复问题.
http://download.microsoft.com/download/msn...us/mcrepair.exe


除第一、第二种我亲身试过,其他的还没有用过,如果以上都没有效果,那么阿门...........


IE二级链接打不开的认识误区


很多网友都遇到过这种情况:在使用IE浏览器打开任意一个网站后,单击网页中的任一个链接,都无法打开新页面。遇到这个问题时,解决方法大多是按照网上提供的说法,使用Regsvr32命令将Urlmon.dll、Shdocvw.dll、Shell32.dll、Oleaut32.dll、Actxprxy.dll、Mshtml.dll、Browseui.dll、Msjava.dll这几个文件统统注册一遍。
首先,这个方法是微软网站上的正式解释,而不是什么谣传,否则也不会注册了这些文件事,就会在一定程序上解决二级链接打不开的问题。但是,很多人碰到这个问题的时候至少有三个误区。
一是认为出现二级链接打不开的情况时,就一定要全部注册这些文件才行。二是认为这些文件的注册是没有先后顺序的。三是认为文件注册出现失败的情况就只有重装系统才能解决问题。

下面我们就这三个误区分别进行讲解。二级链接打不开的问题(以下简称“故障”)很有可能仅仅是因为这些文件中的一个文件丢失、损坏或者没有正确注册导致的,极少数才会因为多个文件丢失、损坏或者没有正确注册导致故障的出现。因此,这几个文件也并非一定要全部注册的,比方说Msjava.dll这个文件,只有当单击IE二级链接时可以打开新的窗口,但窗口中却一片空白时,那就需要注册它。
出现故障后,如果需要注册全部文件,则要按顺序注册。首先应使用Regsvr32命令注册Urlmon.dll文件,因为此文件是IE的一个负责控制对从Web站点返回的URL和信息进行处理的组件。如果此文件出错,那么,就会导致打不开新窗口的情况出现。只有当注册Urlmon.dll文件成功后,才能继续在“运行”对话框中,依次使用Regsvr32命令注册Actxprxy.dll、Shdocvw.dll、Oleaut32.dll、Mshtml.dll、Browseui.dll、Shell32.dll这几个文件。
如果注册失败,比方说使用“regsvr32 msjava.dll“命令失败时,其实只是因为Regsvr32命令没有在系统中找到Msjava.dll文件所致,如果想使该文件注册成功,只需安装Msjava.dll的父程序Microsoft VM虚拟机即可。而其它的一些文件注册失败时,甚至只要从系统安装光盘,或是别人的同版本操作系统中拷贝相同的文件过来即可,不必重装系统。

每次都感觉优柔寡断地,有些让自己都郁闷,我觉得可能就是为何有些人不能成就大事的缘故吧..........我希望能战胜自己,就是要不断适应变化的环境,我们未知的东西太多,就必须学会谋略,我觉得很需要带有目的性,功利性,但是不要表现的太个性,要睿智就行了.....
一、BIOS中的提示信息

提示信息       说明  
Drive A error   驱动器A错误  
System halt     系统挂起  
Keyboard controller error   键盘控制器错误  
Keyboard error or no keyboard present   键盘错误或者键盘不存在  
BIOS ROM checksum error BIOS ROM   校验错误  
Single hardisk cable fail   当硬盘使用Cable选项时硬盘安装位置不正确  
FDD Controller Failure BIOS   软盘控制器错误  
HDD Controller Failure BIOS   硬盘控制器错误  
Driver Error   驱动器错误    
Cache Memory Bad, Do not Enable Cache   高速缓存Cache损坏,不能使用  
Error: Unable to control A20 line   错误提示:不能使用A20地址控制线  
Memory write/Read failure   内存读写失败  
Memory allocation error   内存定位错误  
CMOS Battery state Low   CMOS没电了  
Keyboard interface error   键盘接口错误  
Hard disk drive failure   加载硬盘失败  
Hard disk not present   硬盘不存在  
Floppy disk(s) fail (40)   软盘驱动器加载失败,一般是数据线插反,电源线没有插接,CMOS内部软驱设置错误  
CMOS checksum error-efaults loaded.   CMOS校验错误,装入缺省(默认)设置
二、BIOS刷新失败后,Bootblock启动时出现的提示信息

提示信息                         说明  
Detecting floppy drive A media...   检测软驱A的格式  
Drive media is : 1.44Mb1.2Mb 720Kb 360K   驱动器格式是1.44Mb、12Mb、720kb、360kb的一种  
DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER   磁盘引导失败,插入系统盘后按任意键继续

三、MBR主引导区提示信息

提示信息             说明  
Invalid partition table   无效的分区表  
Error loading operating sy stem   不能装入引导系统  
Missing operating system   系统引导文件丢失

  说明:如果在计算机启动过程中,在硬件配置清单下方(也就时在平时正常启动时出现Starting windows 98…的地方)出现不可识别字符,此时可判断硬盘分区表损坏。如果你的硬盘上有重要资料,这时你不要轻易进行分区,可找专业的数据恢复公司。
四、DOS活动分区中的提示信息

提示信息           说明  
Invalid system disk   无效的系统盘  
Disk I/O error, Replace the disk and press any key.   磁盘I/O错误,替换磁盘后按任意键(当C盘系统文件丢失或被破坏时出现该提示信息。这时可能SYS C:为修复系统文件)  
Invalid Media Type reaching Drive C:   无效的C盘媒体格式说明,也就是C盘没有格式化或者是其他操作系统的磁盘格式如NTFS  
Invalid Boot Diskette Boot Failure   无效的启动盘,启动失败

五、IO.SYS中的提示信息阅读全文
点击在新窗口中浏览此图片首先:你当然得有台电脑!然后,请你装上windows,98---2003都可,只要你会进dos就行!然后:请去商店里买一张正版xp光盘,好象蛮贵的。xp嘛,贵就贵一点吧。如果你不想买,那就跟我无关了,随便你从什么地方下载吧!一些网站及ftp上都有的。顺便说一下,有次我把跟虚拟光驱有关的东西都卸载了,结果发现我的iso文件变成了rar文件,不管如何,解压或用虚拟光驱,把里面的i386(只要i386)文件提取出来,复制到某盘,如我的d盘根目录下(其实不是根目录也行,但显然这样更方便)。最后请找smartdrv,这很容易找的,一般win98安装盘里就有,这个我也放在的d盘的根目录下。
点击在新窗口中浏览此图片
好了,准备进dos吧,98进dos很容易,启动到ms-dos就行,其它的请自行找方法进入。该格式化你的c盘了,好象dos下只能全新安装,我知道你很不舍得,那先把c盘用ghost做一个镜像再格掉吧!特别注意,格式化你的c盘,你必须保证你的c盘是fat32格式,如果不是,你将格式化你的第一个fat32格式的分区。另外,请先用ghost备份你的c盘,如果出意外(其实我没也备份过但好在没出过意外),可别找我哦!
点击在新窗口中浏览此图片
这是用九八光盘进dos的样子之前要在bios里面设置为光驱先启动!
点击在新窗口中浏览此图片
再说一次,输入format命令之前请先备份c盘,并且保证c盘为fat32格式
点击在新窗口中浏览此图片
问你是不是真要格式化
汗……

点击在新窗口中浏览此图片
这是为c盘取个名字,直接按回车就行了,不用理它!
点击在新窗口中浏览此图片
输入d:  再回车,进入d盘
再输入dir回车,看看d盘下是不是有i386和smartdrv文件
点击在新窗口中浏览此图片
加载smartdrv,会发现一点变化也没有
点击在新窗口中浏览此图片
干脆再输入smartdrv,这次屏幕变化了,觉得放心了(其实一次就可以了
点击在新窗口中浏览此图片
输入cd i386,进入i386文件
点击在新窗口中浏览此图片

注意,执行winnt命令了

点击在新窗口中浏览此图片
进入一个蓝屏,不用理它,直接按回车就行了!
点击在新窗口中浏览此图片
要复制文件了,这段时间好象挺长的!


























世上最强的中国式英语!看完晕死!

1.we two who and who?
  咱俩谁跟谁啊?

2.how are you ? how old are you?
  怎么是你,怎么老是你?

3.you don`t bird me,I don`t bird you.
  不鸟我,我也不鸟你。

4.you have seed I will give you some color to see see, brothers ! Together up !
  你有种,我要给你点颜色瞧瞧,兄弟们,一起上!

5.hello everybody!if you have something to say,then say!if you have nothing to say,go home!!
  有事起奏,无事退朝。

06.you me you me.
  彼此彼此。

07.You Give Me Stop!!
  你给我站住!

08.know is know noknow is noknow...
  知之为知之,不知为不知...

09.WATCH SISTER!
  表妹!

10.dragon born dragon,chicken born chicken,mouse'son can make hole!!
  龙生龙,凤生凤,老鼠的儿子会打洞!

11.American Chinese not enough.
  美中不足。

12.one car come one car go ,two car pengpeng,people die.
  车祸现场描述。

13.heart flower angry open.
  心花怒放。

14.go past no mistake past.
  走过路过,不要错过。

15.小明:I am sorry!
  老外:I am sorry too!
  小明:I am sorry three!
  老外:What are you sorry for?
  小明:I am sorry five!

16.If you want money,I have no, if you want life,I have one!
  要钱没有,要命一条。

17.I call Li old big. Toyear 25.
  我叫李老大,今年25。

18.you have two down son。
  你有两下子。

19.as far as you go to die!!!
  有多远,死多远!!!

20.I give you face you don`t wanna face,you lose you face ,I turn my face.
  给你脸你不要脸,你丢脸,我翻脸。

21. no three no four!
  不三不四!

22. seven up eight down!
关于魔兽我觉得还是有值得借鉴的地方.呵呵

感谢生命 不指定

WEB2.0 2006-10-6 16:09
      生命,对于我们每个人来说都是最珍贵的。有时它很坚强,有时却很脆弱。生命对我们来说都很公平,因为它给每个人的机会只有一次,它带给我们的都是同样的东西。
  我感谢父母是因为,刚出生的时候,是父亲用他那宽阔的胸膛和结实的肩膀支撑了整个家庭,是母亲用她那无私的爱和乳汁哺育了我,是父母呵护了我的生命。是他们用无私的爱和心血养育了我,是他们在尽自己的所能给我创造舒适的生活,生活中的每一件事都已经被他们看在眼里记在心里。
  父母给我的永远是最亲切的一面。每次我受伤或者生病时,都有父母的陪伴,那时我的就像一只温顺的小猫蜷缩在他们的怀抱里。父母的怀抱让我感到了无限的温暖和安全,我可以在这个世界里无所顾及的睡过去。
  我感谢朋友是因,在我慢慢成长的过程中,友情也慢慢的降临到我的身上。朋友关心的话语让我感觉到了温馨,朋友的祝福让我感觉到了幸福,所以我用真心去对待每一个朋友。但我深深明白,朋友之间应该“求同存异”,朋友都需要自己的空间,所以我没有过多的要求过什么。
  朋友总会在我忧郁时,一声不吭的听我说完所有烦恼。在我心情坏到极点时候,给你一个路标,一个暗示,让我从困境中从容的走出来。
  当然,在生命给我带来亲人与朋友的同时,也给我带来了“敌人”。虽然我不喜欢他们,可是我仍然要感谢他们,是他们让我看到了自己的不足,是他们让我知道了自己的弱点,是他们让我有了战胜他们的斗志。
  敌人总是会在任何时候,任何时间,不断的扫描你,他们总是用那最敏感的一面来成对你,只的找到你的弱点就给你最沉痛的打击。是他们把我成功的幻想激醒,是他们让我在茫茫人海中不敢迷失自我,也是他们教会了我捕捉,正是因为这样才让我在激烈的竞争中占得一席之地。
  父母是受伤时的避风港,朋友是我忧郁时的倾听者,敌人是我生活中的镜子。
  感谢生命给我带的快乐,感谢生命给我带来的忧郁,感谢生命给我带来的伤痛,感谢生命给我带来的一切。
Windows Media Player文件

初秋的天,冰冷的夜
回忆慢慢袭来
真心的爱就像落叶
为何却要分开

灰色的天独自彷徨
城市的老地方
真的孤单走过忧伤
心碎还要逞强

想为你披件外衣
天凉要爱惜自己
没有人比我更疼你
告诉你在每个
想你的夜里
我哭的好无力

就让秋风带走我的思念
带走我的泪
我还一直静静守候在
相约的地点

求求老天淋湿我的双眼
冰冻我的心
让我不再苦苦奢求你还
回来我身边
Windows Media Player文件


天空灰的像哭过
离开你以后
并没有更自由
酸酸的空气
守住我们的距离
一幕醉心的结局
像呼吸般无法停息
抽屉泛黄的日记
找到了回忆
那笑容是傻气
你我的过去
被深深真的忘记
缺氧过后的爱情
存心的眼泪是多余
我知道你我都没有错
只是忘了怎么退后
信誓旦旦给的承诺
全被时间扑了空
我知道我们都没有错
只是放手比较好过
最美的爱情回忆里带去
☆歌词吾爱☆
☆歌词提供:再兴☆
天空灰的像哭过
离开你以后
并没有更自由
酸酸的空气
守住我们的距离
一幕醉心的结局
像呼吸般无法停息
抽屉泛黄的日记
找到了回忆
那笑容是傻气
你我的过去
被深深真的忘记
缺氧过后的爱情
存心的眼泪是多余
我知道你我都没有错
只是忘了怎么退后
信誓旦旦给的承诺
全被时间扑了空
我知道门都没有错
只是放手会比较好过
最美的爱情会一定带去
》》》
我知道我们都没有错
只是放手会比较好过
最美的爱情回忆里带去(待续)
(相信你我还会有开始
只因我们都没有错)

Windows Media Player文件


这里的空气很新鲜
这里的小吃很特别
这里的lette不像水
这里的夜景很有感觉

在一万英尺的天边
在有港口view的房间
在讨价还价的商店
在凌晨喧闹的三四点
可是亲爱的你怎么不在我身边
我们有多少时间能浪费
电话再甜美
传真再安慰
也不足以应付不能拥抱你的遥远
我的亲爱的你怎么不在我身边
一个人过一天像过一年
海的那一边
乌云一整片
我很想为了你快乐一点
可是亲爱的
你怎么不在身边
-----

一、引言

  Java是一门适合于分布式计算环境、尤其是Internet程序设计的语言。这不仅仅在于java具有很好的安全性和可移植性,还在于java为Internet编程提供了丰富的网络类库的支持。利用这些网络类库,可以轻松编写多种类型的网络通信程序。然而由于某些限制,Java在传输多媒体信息方面的应用不是很广,大部分的应用都集中在网络上传输语音
等音频信号的方面。传输音频信号应用方案一般有两种,一是应用于数据广播的多对一传输,例如音频数据服务器向数个客户端发送音频数据信号,其最广泛的应用则是某些网上的IP电话,大家经常可以看到不少这种提供在线IP电话服务的网站的客户端都是使用的嵌在网页上的Java Applet程序,用来实现拨号、通话等等基本的网络电话功能; 第二种方案则是我们今天要涉及的部分,一对一的音频信号数据的传输。这种方案的应用范围更广。大家都去过语音聊天室,大部分的语音聊天室的语音聊天功能的实现就是使用的Java技术,大家对这样网页的源代码分析一下就可以发现这一点。

  我曾开发一个项目,涉及使用java来实现在网络上传输语音数据。开发中遇到不少问题,而且在互联网上发现关于java语音传输的资料比较少,寻找了许多天,最终从一个开放源代码的一个简单的Answer Machine 演示程序中获得了解决问题的方法。今天我就把我在点对点传输音频信号方面的一些经验拿出来,与大家共同探讨这方面的问题。

  二、存在的问题

  在网络上传输音频的方面存在的问题主要可以归纳为以下几点:

  1 双方之间的网络连接

  要进行频数据的传输,首先就是要建立数据连结。常用的通讯协议中,TCP较可靠,所以用在不允许数据丢失的应用上。而UDP则较多应用于处理速度要求较快、数据传输可靠性要求不是很高的应用上,如数据广播。通信协议的选择取决于我们所要做的应用的类型。怎样建立网络连接,稳定的接收和发送音频信号的数据流是关键。

  2 音频信号的采集以及回放

  在进行音频信号的采集中我们必须考虑到采样率的问题,声音信号的采样率有8Khz、16Khz、32Khz、44Khz等,每种数据采样虑产生的数据量都不一样,越高的采样率产生的数据量越大,所以我们要选择合适的采样率以适应网络的带宽。

  3 音频数字信号的编码与解码。

  如果把直接采集到的音频信号数据流在网络上进行传输,它所占有的带宽也是十分大的,以8Khz的采样率采集14位的音频数据那么就有以下这样的一个式子:

14 bit * 8000/second=112,000 bits/second or112kbps

  从中我们可以看出以这样的方式传输音频数据,每秒需要向网络中发送112kb的数据。所以。从节省带宽的角度考虑,我们很有必要对这样的数据进行压缩。对多媒体信号的压缩我们有许多可以选择的格式,如mp2、mp3、GSM等等。同样,我们这里也存在一个对压缩格式进行选择的问题,考虑到音频数据传输的及时性,对传输的音频数据质量的要求,以及各种压缩格式的压缩比率以及进行压缩和解压缩所要耗费的系统资源等方面问题,选择合适的压缩格式就显得尤为重要。

三、解决的方法

  下面就针对前面提出的问题讨论一下解决的办法。

  1 双方之间的网络连接

  Java在这方面有其独特的优势,Java提供了丰富的网络类库的支持,可以轻松编写多种类型的网络通信程序。在我下面的例子中我就使用了TCP/IP协议,通过Java的Socket类进行编程。

  2 音频信号
的采集和回放以及音频数字信号的编码与解码

  在解决这两个问题的时候,在网上很幸运地通过一些文章的介绍,找到了Answer Machine 演示程序的源代码(由of jsresources.org的Florian Bomers 和Matthias Pfisterer编写,网址http://www.jsresources.org/apps/am.html)。在这个程序代码中,有几个解决我们问题所需要的类,而且作者将这些类封装的很好,我们基本不需要做什么改动,只需要屏蔽其中的调试信息的输出就行了,更可贵的是它还封装了几种常见的音频格式。其中的GSM格式(Global System for Mobile Telecommunications)就是我们下面例子中采用的压缩格式,GSM格式可以将128kbps 的音频数据流 (16bit通过8k Hz的音频采样) 压缩为13kbps 的音频数据流,非常适合语音信号的传送,所以可谓是一石二鸟。

  我分析过这几个类的源代码,不得不佩服它的作者,每个类的源代码都很精炼,大家可以自己分析一下。好了下面就给大家讲讲这几个类,并且将它们用到的Java Sound API中的类和函数等一并做个简单介绍,让大家对Java Sound API中常用的类也有个大致的了解。由于Java Sound API中的类比较多。限于篇幅无法对所有用到的类做详尽的解释,以下内容只是简单提及了各个类的用途和使用规范,有关Java Sound API中类的具体介绍请大家访问这里http://java.sun.com/j2se/1.4.2/docs/api/, 查找javax.sound.sampled的相关内容。

  以下的提到几个文件是从Answer Machine 演示程序的源代码中提取出来的,由于是开放源代码的程序,大家在使用的时候请注意相关的公共协议。

  ① AMAudioFormat类(封装在AMAudioFormat.java文件中)

  AMAudioFormat类封装了CD、FM、TELEPHONE、GSM这四种质量的音频格式的参数,使用起来也非常简单,这样我们在使用Java Sound API时就不用自己去写那些复杂的代码了,但为了明白Java Sound API的原理,我们需要对它的代码做一下分析。它使用了Java Sound API中的AudioFormat这个类,这个类非常重要,在Java中对任何音频数据的使用都要实现通过它指定所需要使用的音频格式,AudioFormat类有一个嵌套的类AudioFormat.Encoding,实际上大部分对AudioFormat类的使用都是使用的这个嵌套的类。

  AMAudioFormat类的重要方法:

  名称:getLineAudioFormat
  调用格式:getLineAudioFormat(整型音频格式代号)
  返回值: 根据传递音频格式代号生成的AudioFormat对象。

  说道这里大家可能要问了,那么通过Java Sound API可以直接使用GSM格式吗?答案是比较复杂,但同样有解决的办法,作者在这里使用了另外的开源程序的类库-tritonus的GSM编码解码库。大家需要在这里www.tritonus.org/plugins.html下载tritonous_share.jar和tritonus_gsm.jar两个文件,并在AMAudioFormat类中引用,这样就完成了GSM格式的设置。需要告诉大家的是在对AMAudioFormat.java这个类进行编译后,我们的程序运行的时候就可以不需要tritonous_share.jar和tritonus_gsm.jar这两个文件的支持了。

  ② AudioCapture类(封装在AudioCapture.java文件中)

  AudioCapture类封装了从音频硬件捕获音频数据并自动编码为GSM音频压缩数据的过程,并且通过它的getAudioInputStream()方法提供给我们一个音频数据输入流,我们就可以直接将这个流发送到网络中。

  AudioCapture 类的重要方法:
  名称:getAudioInputStream
  调用格式:getAudioInputStream()
  返回值:AudioInputStream对象

  AudioCapture 类使用了Java Sound API中的AudioInputStream、AudioFormat、AudioSystem这几个类和TargetDataLine、LineListener接口。除了AudioFormat类我再简单介绍一下其他的类:

  AudioInputStream 类是带有特殊音频格式和长度的InputStream类,它有两个构造方法,分别是AudioInputStream(InputStream stream, AudioFormat format,long length)和AudioInputStream(TargetData -Line line)。

  TargetDataLine 接口是DataLine接口的一种,通过它就可以直接从音频硬件获取数据了,它有几个常用的方法,分别是:open(AudioFormat format)、void open(AudioFormat format, int bufferSize)、int read(byte[] b, int off, int len)。

  AudioSystem 类是Java标准音频系统的入口点,在AudioSystem 类中使用他的getLine() 方法创建TargetDataLine对象。

  LineListener接口用来对线路状态改变的时间进行监听,他的重要的方法是update(LineEvent event)方法。

  ③ AudioPlayStream类(封装在AudioPlayStream.java文件中)

  AudioPlayStream类与AudioCapture类刚好相反,它封装了GSM压缩音频数据的解码和音频信号的回放过程,提供给我们一个音频信号输出流。AudioCapture类用到的Java Sound API中的类它也基本都用到了,只是它使用了SourceDataLine接口而不是TargetDataLine接口

  ④ Debug类(封装在Debug.java文件中)

  Debug类主要用来在调试时输出讯息,代码很少,后来我把其中输出信息的语句都屏蔽了,对程序运行没有影响。

  为了方便使用以上的几个类,我们需要对它们进行编译和打包,编译时需要设置相关的编译环境,以下是我们需要用到的命令行

set CLASSPATH=%CLASSPATH%;.;tritonus_gsm.jar;tritonus_share.jar
javac am\*.java am\audio\*.java
jar cmf packaging\manifest.mf am.jar am\*.class
am\audio\*.class

  说明一下,我将以上提到的Java源码文件放在了am目录下,编译之后可以得到一个8k的am.jar文件,我们下一步所需要做的就是在我们的程序中引用这个包。

四、实例介绍

  有了以上的基本的介绍,我就可以通过对我写的一个极为简单的语音对讲软件代码的解释让大家更清楚地了解一下这几个模块的具体使用方法,大家可以从中获得开发具有诸如网络电话、自动应答等功能的软件的类似方法,用于语音数据的传输。

  程序的结构:


  整个程序分三层,作用分别如下:

  . 顶层: 用户界面

  . 中间层: 控制层

  . 底层: 传输层

  程序有两个主要的类: (表)

类名 描述
CallLink 网络传输层,用于接收或发送音频数据。
VoiceSender 作为第二个启动的线程提供从音频硬件捕获并编码好的数据给网络传输层。



  程序的主类jphone使用了Runnable和ActionListener接口,主类除了基本的几个方法之外,还具有方法initAudioHardware()、ShowMSG、startPhone分别用于初始化AudioCapture类与AudioPlayStream类、显示程序状态和开始程序。主类jphone具有两个子类VoiceSender和CallLink。

  子类VoiceSender同样使用了Runnable接口,它在程序中作为第二个启动的线程负责发送捕获到的音频数据。CallLink子类就是负责建立scoket连接,并且负责接收或发送网络数据、监听网络连接等功能的实现。它具有主要的方法是getInputStream()、getOutputStream()、listen()、open()、close()等。

  为了让大家更清楚的了解程序的结构请大家看下面的类图。
点击在新窗口中浏览此图片
程序的基本工作流程:

  当程序启动时首先执行建立当前主类的实例,当按下呼叫按钮的时候执行startPhone()方法,startPhone()方法通过调用initAudioHardware()方法建立AudioCapture对象和AudioPlayStream对象的实例PhoneMIC和PhoneSPK, 紧接着在建立CallLink子类的实例curCallLink来与具有目标IP地址的计算机进行scoket连接后,startPhone()方法又将子类VoiceSender作为secondThread线程启动,然后又调用run()方法。 run()方法通过已经建立的CallLink子类的实例curCallLink监听网络上的数据(也就是等待别人的呼叫),一旦有音频数据到来curCallLink 实例就为AudioPlayStream 对象PhoneSPK 提供网络传来的音频数据,而PhoneSPK在一个循环中不断的将音频数据转换为音频信号,完成类似电话听筒的功能。

  子类VoiceSender 就作为第二线程启动的时候,startPhone() 方法传递给它的参数是实例化的CallLink 子类curCallLink , 子类VoiceSender 通过实例化的AudioCapture 对象PhoneMIC 将音频信号压缩成GSM数据,并通过curCallLink 将音频数据发送到具有目标IP 地址的计算机上,完成类似电话受话器的功能。

  在这里实例化的CallLink 子类curCallLink 就相当于两个电话之间的电话线,这样通过我以上的解释大家对程序的原理就有一个大概的了解了吧。

  其中的音频数据发送线程和音频数据接收线程是同步的,不过考虑到网络的因素,可能在声音的传输上有一些延迟,不过由于延迟比较小对及时听到对方的话语影响不大。
点击在新窗口中浏览此图片
编写代码摘要:

  在使用AudioCapture 类和AudioPlayStream 类的方法之前需要知道怎样初始化这两个类。在声明AudioCapture 对象的时候需要传递给它一个静态的整型值用于表达将音频信号压缩的方式,这个静态的整型常量可以是AMAudioFormat 类的以下四个值之一: FORMAT_CODE_CD 、FORMAT_CODE_FM 、FORMAT
_CODE_TELEPHONE 、FORMAT_CODE_GSM 。所以声明AudioCapture 对象就要用一下的形式:


private AudioCapture PhoneMIC null;
PhoneMIC new AudioCapture(AMAudioFormat.
FORMAT_CODE_GSM);  


  而声明AudioPlayStream 对象则不同,我们在初始化它的时候需要传递给它一个AudioFormat 对象,用于通知它我们所要播放音频的格式,这个AudioFormat 对象可以通过AMAudioFormat 类的getLineAudioFormat(格式参数值)方法获得,其中格式参数的取值和上面提到过的AMAudioFormat 的四个值相同,所以声明AudioPlayStream 对象就要用以下的形式:


private AudioPlayStream PhoneSPK null;
AudioFormat format null;
format AMAudioFormat.getLineAudioFormat
(AMAudioFormat.FORMAT_CODE_GSM);
PhoneSPK new AudioPlayStream(format);  


  在这之后就可以使用AudioCapture 和AudioPlayStream 对象的open() 方法打开音频捕获和音频回放通道完成它们的初始化了。如以下的形式:


PhoneMIC.open();
PhoneSPK.open();  


  初始化完成之后要使AudioPlayStream 对象播放声音还需要以下过程,首先建立一个缓冲区(字节数组)用于存放从网络传来的音频数据流,然后执行AudioPlayStream 对象的start() 方法使AudioPlayStream
对象开始声音的回放,这时执行一个while 循环,在循环中将音频流数据写入缓冲区,再使用AudioPlayStream对象的write()方法将缓冲区的数据还原成语音信号然后播放出来。如下面的例子:


boolean complete false;
byte[] gsmdata new byte[bufSize];
int numBytesRead 0;
......
PhoneSPK.start();
......
complete false;
while((!Thread.currentThread().interrupted()) )
{
 try
 {
  numBytesReadplaybackInputStream.read(gsmdata);
  if(numBytesRead == -1)
  {
   complete=true;
   break;
  }
  PhoneSPK.write(gsmdata, 0, numBytesRead);
 }
 catch (IOException e)
 {
  System.exit(1);
 }
}  


  其中complete 的值用于标志终止声音播放的异常原因。

  类似的,初始化完成之后要使AudioCapture 对象捕获和压缩声音数据还需要其他的操作,首先声明一个InputStream 对象,赋其值为AudioCapture 对象的getAudioInputStream() 方法的返回值,执行
AudioCapture 对象的start() 方法,然后在建立一个循环,将通过InputStream 的read() 方法得到的数据发送到网络上。例如以下代码:


InputStream myIStream null;
myIStream PhoneMIC.getAudioInputStream();
......
while((!Thread.currentThread().interrupted()))
b = myIStream.read(compressedVoice,0, bufSize);
sendStream.write(compressedVoice,0,b);
......



  通过使用CallLink 的几个方法,我们可以方便的传输和接收音频数据流。以下是它的代码:


class CallLink
//使用套接字进行连接
String ipAddr null;
Socket outSock = null;
ServerSocket inServSock null;
Socket inSock null;
CallLink(String inIP)
ipAddr inIP;
void open() throws IOException, UnknownHostException
{//打开网路连接
if (ipAddr != null)
outSock=new Socket(ipAddr,TALK_PORT);
}

void listen() throws IOException
{// 监听,等候呼叫
inServSock new ServerSocket(TALK_PORT);
inSock inServSock.accept();
}

public InputStream getInputStream()throws IOException
{//返回音频数据输入流
if (inSock != null)
return inSock.getInputStream();
else
return null;
}
publicOutputStreamgetOutputStream()throwsIOException
{//返回音频数据输出流
if (outSock != null)
return outSock.getOutputStream();
else
return null;
}

void close() throws IOException
{//关闭网络连接
inSock.close();
outSock.close();
}



  程序的代码总体有366 行,限于篇幅,这里就不一一列举了。

  编译以及程序的使用方法:

  运行和编译本程序需要加上额外的环境参数,为了方便使用可以建立以下内容的批处理文件:(假设程序所需要的包均在程序所在目录下的lib 文件夹中)

  用于编译的批处理程序c.bat 的内容

javac -classpath .;lib\am.jar jphone.java

  用于运行的批处理程序r.bat 的内容

java -classpath .;lib\am.jar jphone

  启动时在A 计算机的IP 地址框内输入要进行连接的计算机B 的IP 地址,在计算机B 的IP 地址框内输入要进行连接的计算机A 的IP 地址,让后分别点击“拨出电话”按钮就可以进行连接了。当然别忘了接上麦克风和打开音箱电源,呵呵。

  提醒大家,这里的IP 地址栏里预先存在的地址是127.0.0.1,也就是说,程序也可以和自己进行连接,点击“拨出电话”按钮,等8 秒左右敲敲你的麦克风,听到没有,是不是也有“嘣、嘣、嘣”的声音?

这是我原来用过的两段代码,输出音频和捕获音频。
构造器里的socket是用来接受来自网络的音频数据。不做网络音频可以去掉它。

希望能与大家分享经验。8-)

import java.io.*;
import javax.sound.sampled.*;
import java.net.*;


/**
* title: voicechat
* description: 输出音频(放音程序)
* copyright: copyright (c) 2001
* company:
* @author  你猜!
* @version 1.0
*/


class playback implements runnable {

final int bufsize = 16384;
sourcedataline line;
thread thread;
socket s;

playback(socket s){//构造器 取得socket以获得网络输入流
this.s=s;
}
public void start() {

thread = new thread(this);
thread.setname("playback");
thread.start();
}

public void stop() {
thread = null;
}

public void run() {

audioformat format =new audioformat(8000,16,2,true,true);//audioformat(float samplerate, int samplesizeinbits, int channels, boolean signed, boolean bigendian)
bufferedinputstream playbackinputstream;

try {
playbackinputstream=new bufferedinputstream(new audioinputstream(s.getinputstream(),format,2147483647));//封装成音频输出流,如果网络流是经过压缩的需在此加套解压流
}
catch (ioexception ex) {
return;
}

dataline.info info = new dataline.info(sourcedataline.class,format);

try {
line = (sourcedataline) audiosystem.getline(info);
line.open(format, bufsize);
} catch (lineunavailableexception ex) {
return;
}

byte[] data = new byte[1024];//此处数组的大小跟实时性关系不大,可根据情况进行调整
int numbytesread = 0;
line.start();

while (thread != null) {
try{
numbytesread = playbackinputstream.read(data);
line.write(data, 0,numbytesread);
} catch (ioexception e) {
break;
}
}

if (thread != null) {
line.drain();
}

line.stop();
line.close();
line = null;
}
}


import java.io.*;
import javax.sound.sampled.*;
import java.net.*;

/**
* title: voicechat
* description: 音频捕捉(录音程序)
* copyright: copyright (c) 2001
* company:
* @author  你猜!
* @version 1.0
*/

class capture implements runnable {

targetdataline line;
thread thread;
socket s;
bufferedoutputstream captrueoutputstream;

capture(socket s){//构造器 取得socket以获得网络输出流
this.s=s;
}

public void start() {

thread = new thread(this);
thread.setname("capture");
thread.start();
}

public void stop() {
thread = null;
}

public void run() {

try {
captrueoutputstream=new bufferedoutputstream(s.getoutputstream());//建立输出流 此处可以加套压缩流用来压缩数据
}
catch (ioexception ex) {
return;
}

audioformat format =new audioformat(8000,16,2,true,true);//audioformat(float samplerate, int samplesizeinbits, int channels, boolean signed, boolean bigendian)
dataline.info info = new dataline.info(targetdataline.class,format);

try {
line = (targetdataline) audiosystem.getline(info);
line.open(format, line.getbuffersize());
} catch (exception ex) {
return;
}

byte[] data = new byte[1024];//此处的1024可以情况进行调整,应跟下面的1024应保持一致
int numbytesread=0;
line.start();

while (thread != null) {
numbytesread = line.read(data, 0,1024);//取数据(1024)的大小直接关系到传输的速度,一般越小越快,
try {
captrueoutputstream.write(data, 0, numbytesread);//写入网络流
}
catch (exception ex) {
break;
}
}

line.stop();
line.close();
line = null;

try {
captrueoutputstream.flush();
captrueoutputstream.close();
} catch (ioexception ex) {
ex.printstacktrace();
}
}
}

我个人是认为这个体罚比较让人接受,其实竞争本来就是残酷的,虽然没有长征那末紧迫和具有一定的让人生死存亡的感觉,于是有些聪明的人就提出了友谊之说,可见高明之处,于是我们有了友谊,但是,我们真的有么?没有.只是人们的一种碍于颜面罢了,自欺欺人的好下台阶,但是世界是要向前发掌的动力不能没有,让人们大胆尝试,但是不能太过分,否则就像动物一样,变得没有人情可讲,呵呵......我道出了真话,可能有人会不同意我的观点,我只想说无论追求什么,我们都要用我们的精力&时间去学习他人的精力方式等.否则跟死亡没有两样,........
Windows Media Player文件

曲名:冷雨夜     歌手:Beyond

在雨中漫步
蓝色街灯渐露
相对望
无声紧拥抱着
为了找往日
寻温馨的往日
消失了
任雨湿我面
难分水点泪痕
心更乱
愁丝绕千百段
骤变的态度
无心伤她说话
收不了
冷雨夜我在你身边
盼望你会知
可知道我的心
比当初已改变
只牵强地相处
冷雨夜我不想归家
怕望你背影
只苦笑望雨点
须知要说清楚
可惜我没胆试
尝水中的味道
仿似是
情此刻的尽时
未了解结合
留低思忆片段
不经意

 我的亲爱的,你怎么不在我身边,一个人过一天,象过一年,可是亲爱的,你怎么不在身边,我有多少时间能浪费,................
http://www.blueidea.com/tech/multimedia/2003/741.asp


首先我们要拿到安装包。本人是从adobe官网下载的最新版本 3.5 的。
不过 在官网下载需要注册帐号。如果嫌麻烦的朋友可以在我的FTP上下载。

拿到FlashMediaServer3.5.tar.gz之后(这是linux安装包的)。
上传到自己的服务器上。进行解压:

先创建个用户和用户组给fms用,

[root@localhost ~]# groupadd fms
[root@localhost ~]# useradd -g fms fms

tar zxvf FlashMediaServer3.tar.gz 解压完毕,进入安装目录:
cd FMS_3_5_1_r516 进入安装目录之后执行安装:
./installFMS -platformWarnOnly 注意:-platformWarnOnly 这个参数必须加上。忽略操作系统平台。否则可能以内操作系统的不兼容而无法安装。
敲回车阅读安装协议,Ctrl+C直接跳过。输入 y 敲回车开始安装!
我x,要注册码。。。好的找注册机。(可以到我的FTP上下载)注册机上注意选择安装类型是 Adobe Flash Media Interactive Server v 3.5.x 这个功能更强大.通俗点类似于企业版的2003.
这里贴个注册码: 1373-5047-2985-0514-5175-0098
贴入敲回车正式开始安装:
屏幕提示:Default [/opt/adobe/fms]:
输入 /opt/adobe/fms 敲回车! (软件安装路径.用默认的即可.) 我第一次安装傻乎乎的输入了y 我以为是问我是否安装到默认目录. 这里注意下 default后边的是默认输入的提示!
屏幕提示:Default [1935,80]: FMS服务器监听端口:因为装了apache 已经用到了80端口.所以这里我们只监听1935即可.80去掉.否则和apache冲突apache就启动不起来了.
输入 1935 敲回车! 屏幕提示:Default [1111]: 默认远程管理的端口 默认即可. 输入 1111 敲回车!
屏幕提示:Please enter the administrative username: 设置管理员帐号: 输入 你的习惯帐号 回车,密码回车
屏幕提示:Default user [nobody]: 意思是FMS服务用那个用户来运行的.默认即可,如果你是linux高手,并有不良嗜好,那安装之前自己创建一个用户帐号来运行fms.反正我一台服务器用的 root.用户组也是root 因为用其他账户出现了不少权限问题 造成了不少麻烦.你根据个人需要吧! 另外一台机器用默认的nobody 安装.好像也比较正常,很奇怪的事情.
下一步 屏幕提示:Do you want to install apache? (y/n) Default [y]: 问你要不要特殊服务:安装apache.废话,当然不要,我按过了.
输入 n 敲回车! 屏幕提示:Do you want the Adobe Flash Media Server service to run as a daemon? (y/n) Default [y]: 要不要守护进程什么的. 只管 y 输入 y 回车
屏幕提示:Do you want to start the Adobe Flash Media Server after the installation is done? (y/n) Default [y]: 装完顺便启动? 当然 y 回车!
然后会列出配置文件信息,自己检查一下没问题就 安装了,安装完毕 fms会自己启动.

如果没

cd /opt/adobe/fms

and enter

./fmsmgr server fms start
用top命令看一下有下边四个进程吗?有的话ok了!(top -b -d 5)
fmsmaster fmsedge fmscore fmsadmin
别忘记打开linux的防火墙端口!!!!


fms_adminConsole.swf 位于tools目录下


=================================================================

Linux 下安装Flash Media Server(翻译自FLash Media Server帮助手册)
在LINUX操作系统上安装Flash Media Server:
1.以ROOT身份登陆(安装Flash Media Server所必需的)。
2.本地安装文件,FlashMediaServer2.tar.gz.
   安装文件在你的CD上,或者你可以下载得到。
3.复制安装文件到你的本地硬盘上的目录中。
4.打开一个SHELL窗口切换到安装目录中。(例如 [root@localhost root]# cd /Flash Media Server 笔者添加)
5.Unzip安装文件:
  gunzip flashmediaserver2.tar.gz
6.Untar 安装文件:
  tar -xf flashmediaserver.tar
创建了一个带有安装文件的目录
7.切换到安装目录下:
  cd flashmediaserver2
8.使用下面的命令启动安装文件:
./installFMS
安装程序开始并出现欢迎信息
9.按回车键开始安装。
10.下列安装提示在你的屏幕上。
    Enter a user for Flash Media Server processes to run as. The default is the "nobody" user. (The user you select is also the owner of the ?Flash Media Server files.) Your choices are written to the fms.ini file; you can edit the fms.ini file to modify this and other security properties later, if needed.
11.浏览你所选择的安装选项
   安装完成以后,如果你设置Flash Media Server为自动启动模式,Flash Media Server 自动开启。
12.手动开启Flash Media Server
   fmsmgr server start
13.以管理员身份管理服务,打开管理操作通过fms2_console.swf文件。
提示:一些杀毒程序,例如熊猫杀毒软件,这样的软件会在系统物理层上面将SOCKET CALL封状,很可能导致Flash Media Server失败。(另外一些杀毒软件,例如NOTON诺顿,是兼容Flash Media Server。)如果你正在使用Flash Media Server同杀毒软件一起安装,尝试卸载杀毒程序。

=======================================

FMS2是Macromedia公司的一项多媒体应用平台,全称是Flash Media Server 2,他是FCS的升级版,就比如说是FLASH7跟FLASH8的关系。只是版本不一样升级了而已。

FMS2只有英文版,Adobe还没有发布中文版,等吧!

FlashMediaServer2 (FMS2) 服务器程序在这里可以下载,附带无限制授权文件:  

Win32版:  http://www.loonlog.cn/soft/fms/FlashMediaServer2.rar
Linux 版: http://www.loonlog.cn/soft/fms/FlashMediaServer2.tar.gz
授权文件: http://www.loonlog.cn/soft/fms/license.zip   (Windows与Linux都通用)

安装把license.lic文件拷到license目录里,Linux与WINDOWS版的一样用法。


FMS2的详细安装过程序如下:


Flash Media Server的系统需求

下面的软件和硬件是运行Flash Media Server 2的最小需求:
支 持的操作系统: Windows 2000 Server Windows 2003 Server, Standard Edition Linux Red Hat Enterprise, Version 3.0 Linux Red Hat Enterprise, Version 4.0
硬件需求: x86兼容CPU(Pentium III,GHz或更高) MB可用内存 MB可用磁盘空间

下面的软件和硬件是为产品计算机而推荐的:
支持的操作系统: Windows 2003 Server, Standard Edition Linux Red Hat Enterprise, Version 3.0
硬件需求: x86兼容CPU(Pentium 4,.2GHz或更高) GB可用内存 GB 以太网卡 MB可用磁盘空间

安装服务器程序

这个服务器的安装是很容易的。所要准备的是需要在安装期间选择一个管理员用户名和密码;如果需要的话,你可以在以后通过管理控制台来改变这个用户名和密码。
注 意:软件被设计成使网络连接模仿调制解调器或DSL线路以便节省带宽,比如NetLimiter,可以中断系统 调用和打断Flash Media Server套接字动作。错误消息“捆绑完成端口(Completion Port)失败,参数错误”出现。 在安装Flash Media Server之前,移除这种软件类型。同样,不要在Flash Media Server被安装之后再安装这种软 件类型。你可以在客户端使用这种软件类型,但不要在服务器所在的计算机上使用它。

要在Windows上安装Flash Media Server:

1. 定位到安装文件,FlashMediaServer2.exe。 这个文件位于你的安装光盘上,或者你可能已经下载了它。
2. 双击这个安装程序的图标。 安装程序被启动。
3. 跟随安装向导中的提示。
4. 接受License Agreement(许可协议)以继续安装过程。
5. 输入一个用户名和密码作为第一个有效的服务器管理员。这些值被写在fms.ini文件中。(你可以在日 后使用管理控制台来添加其他管理员。)
6. 输入Flash Media Server应该使用的服务器端口。
7. 接受为Flash Media Serve文件提供的默认位置,或是输入一个新位置用于Flash Media Server的安装。
8. 接受为Flash Media Serve程序快捷方式提供的默认位置,或是输入一个新位置用于快捷方式的安装。
9. 复查你的安装选择。点击Back来做任何需要的改变。
10. 点击Install。
11. 最后的安装步骤给了你查看Readme.htm文件的机会,启动Flash Media Server,并选择当你重启动你的 计算机时手动启动Flash Media Server的选项。选择任何你喜欢的选项,并点击Finish。 安装完成。如果你把它配置成自动启动,则Flash Media Server服务将启动。
12. 要手动启动服务器,选择“开始-> 程序-> Macromedia -> Flash Media Server 2 -> Start Flash Media Server和Start Flash Media Admin Server”。
13. 要打开Flash Media Server管理控制台,选择“开始-> 程序-> Macromedia -> Flash Media Server 2 -> Management Console”。


要在Linux系统上安装Flash Media Server:

1. 作为root用户登录(要安装Flash Media Server,这是必需的)。
2. 定位到安装文件,FlashMediaServer2.tar.gz。 这个文件位于你的安装光盘上,或者你可能已经下载了它。
3. 把这个文件拷贝到你的本地硬盘的一个目录中。
4. 打开一个打开一个shell窗口并改变到保存着这个安装文件的目录中。窗口并改变到保存着这个安装文 件的目录中。
5. Unzip shell Unzip这个安装文件:这个安装文件:gunzip flashmediaserver2.tar.gz
6. Untar这个安装文件:tar -xf flashmediaserver.tar 一个包含安装程序的目录将被创建。
7. 改变到这个目录。cd flashmediaserver2
8. 用下面的命令启动安装程序: ./installFMS 安装程序会启动并显示一个欢迎信息。
9. 按Enter键来开始安装。
10. 跟随你的屏幕上的安装指导。为Flash Media Server输入一个用户,Flash Media Server过程将作为这个用户来运行。默认是“nobody”用户。你可以在日后编辑fms.ini文件来修改这个以及其他的安全属性,假如需要的话。
11. 复查你所选择的安装选项的摘要,这些信息被显示在安装程序中。
12. 安装完成。如果你把它配置成自动启动,则Flash Media Server服务将启动。
13. 要手动启动服务器,输入fmsmgr server start。
14. 要登录到Admin Service(管理员服务)并执行管理功能,通过打开fms2_console.swf文件来打开管理控 制台。

注 意:有些杀毒软件,比如Panda Antivirus,以及那些会为系统级套接字调用安装它们自己的包装的程 序,可能导致Flash Media Server失败。(其它杀毒软件,比如Norton AntiVirus,是与Flash Media Server兼容的。) 如果你在安装Flash Media Server期间遇到了问题且有杀毒软件安装在你的计算机中,则试着先移除这些杀毒软件。

来源:http://hi.baidu.com/bluewingmyth/blog/item/1518a8349a1a4eb4d0a2d39d.html
http://blog.csdn.net/xiang08/article/details/4136670
http://wenson.iteye.com/blog/42904
http://hi.baidu.com/tips1127/blog/item/89d8f98993b5cf98a5c27250.html
前面我们可以播放声音文件了,但是不能自己控制。
下面的2个程序让我们实现自己控制播放、暂停。
程序1用Button组件实现,程序2用JButton组件实现。
--------------------程序1开始--------------------
Music.java

import java.applet.*;
import java.awt.*;

public class Music extends Applet {
Button play,loop,stop;
AudioClip audio = null;

public void init() {
 resize(200,30);
 play = new Button("play");
 loop = new Button("Loop");
 stop = new Button("Stop");
 stop.disable();
 add(play);
 add(loop);
 add(stop);
 audio = getAudioClip(getCodeBase(),"mid/fy.mid");  
}

public boolean action(Event event,Object arg) {
 if(event.target == play) {
   if(audio!=null) {
     audio.play();
     play.disable();
     loop.disable();
     stop.enable();
     showStatus("playing sound only once!");
   }else
     showStatus("Sound file no loaded");
     return true;
 }else if(event.target == loop) {
   if(audio!=null) {
     audio.loop();
     play.disable();
     loop.disable();
     stop.enable();
     showStatus("Playing sound all the time!");
   }else
     showStatus("Sound file not loaded");
     return true;
 }else if(event.target == stop) {
   audio.stop();
   loop.enable();
   stop.disable();
   showStatus("Stop playing sound!");
   return true;
 }
 return false;
}
}
点击在新窗口中浏览此图片
-----------------程序2开始------------------
Music.java

import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Music extends Applet {
JButton play,loop,stop;
AudioClip audio = null;

public void init() {
 resize(200,30);
 play = new JButton("play");
 loop = new JButton("Loop");
 stop = new JButton("Stop");
 stop.setEnabled(false);
 audio = getAudioClip(getCodeBase(),"mid/fy.mid");  

 add(play);
 play.addActionListener(
   new ActionListener() {
     public void actionPerformed(ActionEvent event) {
       playActionPerformed(event);
     }
   }
 );

 add(loop);
 loop.addActionListener(
   new ActionListener() {
     public void actionPerformed(ActionEvent event) {
       loopActionPerformed(event);
     }
   }
 );

 add(stop);
 stop.addActionListener(
   new ActionListener() {
     public void actionPerformed(ActionEvent event) {
       stopActionPerformed(event);
     }
   }
 );
}

private void playActionPerformed(ActionEvent event) {
   if(audio!=null) {
     audio.play();
     play.setEnabled(false);
     loop.setEnabled(false);
     stop.setEnabled(true);
     showStatus("playing sound only once!");
   }else
     showStatus("Sound file no loaded");
}

private void loopActionPerformed(ActionEvent event) {
   if(audio!=null) {
     audio.loop();
     play.setEnabled(false);
     loop.setEnabled(false);
     stop.setEnabled(true);
     showStatus("Playing sound all the time!");
   }else
     showStatus("Sound file not loaded");
}

private void stopActionPerformed(ActionEvent event) {
   audio.stop();
   loop.setEnabled(true);
   stop.setEnabled(false);
   showStatus("Stop playing sound!");
}
}
------------------程序2结束---------------------
点击在新窗口中浏览此图片
import java.applet.*;
import java.awt.event.*;  
import java.awt.*;
/**
*

Title: Applet播放声音文件


*

Description: 使用AudioClip类加载声音文件,并当鼠标点击后开始播放


*

Copyright: Copyright (c) 2003


*

Filename: PlayAudio.java


* @version 1.0
*/
public class PlayAudio extends Applet
implements ActionListener{
AudioClip audio;  
Button btExit,btOpen,btPlay,btLoop,btStop;
/**
*
方法说明:初始化Applet
*
输入参数:
*
返回类型:
*/
public void init() {
//加载声音文件
audio = getAudioClip(getDocumentBase(),"img/1.mid");
//构造按钮
setLayout(new FlowLayout()); //使用布局管理器
btPlay=new Button("Play"); //定义Play按钮                  
btPlay.addActionListener(this); //给Play按钮添加一个监听事件
btLoop=new Button("Loop"); //定义Play按钮
btLoop.addActionListener(this); //给Play按钮添加一个监听事件
btStop=new Button("Stop"); //定义Play按钮
btStop.addActionListener(this); //给Play按钮添加一个监听事件
//将按钮添加到Applet中
add(btPlay);
add(btLoop);
add(btStop);



}



public void actionPerformed(ActionEvent e) {



 //如果点击的是Play按钮
if (e.getSource()==btPlay) {
      play();
}
//如果点击的是loop按钮
if (e.getSource()==btLoop) {
      loop();
}
//如果点击的是stop按钮
if (e.getSource()==btStop) {
      stop();
}
}
/**
*
方法说明:播放声音
*
输入参数:
*
返回类型:
*/
public void play(){
  if (audio!=null) stop();
   audio.play();
}
/**
*
方法说明:循环播放声音
*
输入参数:
*
返回类型:
*/
public void loop(){
  if (audio!=null)
   audio.loop();
}
/**
*
方法说明:停止播放声音
*
输入参数:
*
返回类型:
*/
public void stop(){
  if (audio!=null)
   audio.stop();
   
}
}

分页: 242/251 第一页 上页 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 下页 最后页 [ 显示模式: 摘要 | 列表 ]