flutterlive的简单介绍
告诉我假如给我三天光明的英文版全文吧...拜托
第一天,我要看人,他们的善良、温厚与友谊使我的生活值得一过。首先,我希望长久地凝视我亲爱的老师,安妮·莎莉文·梅西太太的面庞,当我还是个孩子的时候,她就来到了我面前,为我打开了外面的世界。我将不仅要看到她面庞的轮廓,以便我能够将它珍藏在
创新互联公司专注于清丰网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供清丰营销型网站建设,清丰网站制作、清丰网页设计、清丰网站官网定制、成都小程序开发服务,打造清丰网络公司原创品牌,更为您提供清丰网站排名全网营销落地服务。
我的记忆中,而且还要研究她的容貌,发现她出自同情心的温柔和耐心的生动迹象,她正是以此来完成教育我的艰巨任务的。我希望从她的眼睛里看到能使她在困难面前站得稳的坚强性格,并且看到她那经常向我流露的、对于全人类的同情。
我不知道什么是透过“灵魂之窗”,即从眼睛看到朋友的内心。我只能用手指尖来“看”一个脸的轮廓。我能够发觉欢笑、悲哀和其他许多明显的情感。我是从感觉朋友的脸来认识他们的。但是,我不能靠触摸来真正描绘他们的个性。当然,通过其他方法,通过他们向我表达的思想,通过他们向我显示出的任何动作,我对他们的个性也有所了解。但是我却不能对他们有较深的理解,而那种理解,我相信,通过看见他们,通过观看他们对种种被表达的思想和境况的反应,通过注意他们的眼神和脸色的反应,是可以获得的。
我身旁的朋友,我了解得很清楚,因为经过长年累月,他们已经将自己的各个方面揭示给了我;然而,对于偶然的朋友,我只有一个不完全的印象。这个印象还是从一次握手中,从我通过手指尖理解他们的嘴唇发出的字句中,或从他们在我手掌的轻轻划写中获得来的。
你们有视觉的人,可以通过观察对方微妙的面部表情,肌肉的颤动,手势的摇摆,迅速领悟对方所表达的意思的实质,这该是多么容易,多么令人心满意足啊!但是,你们可曾想到用你们的视觉,抓住一个人面部的外表特征,来透视一个朋友或者熟人的内心吗?
我还想问你们:能准确地描绘出五位好朋友的面容吗?你们有些人能够,但是很多人不能够。有过一次实验,我询问那些丈夫们,关于他们妻子眼睛的颜色,他们常常显得困窘,供认他们不知道。顺便说一下,妻子们还总是经常抱怨丈夫不注意自己的新服装、新帽子的颜色.以及家内摆设的变化。
有视觉的人,他们的眼睛不久便习惯了周围事物的常规,他们实际上仅仅注意令人惊奇的和壮观的事物。然而,即使他们观看最壮丽的奇观,眼睛都是懒洋洋的。法庭的记录每天都透露出“目击者”看得多么不准确。某一事件会被几个见证人以几种不同的方式“看见”。有的人比别人看得更多,但没有几个人看见他们视线以内一切事物。
啊,如果给我三天光明,我会看见多少东西啊!
第一天,将会是忙碌的一天。我将把我所有亲爱的朋友都叫来,长久地望着他们的脸,把他们内在美的外部迹像铭刻在我的心中。我也将会把目光停留在一个婴儿的脸上,以便能够捕捉到在生活冲突所致的个人意识尚未建立之前的那种渴望的、天真无邪的美。
我还将看看我的小狗们忠实信赖的眼睛——庄重、宁静的小司格梯、达吉,还有健壮而又懂事的大德恩,以及黑尔格,它们的热情、幼稚而顽皮的友谊,使我获得了很大的安慰。
在忙碌的第一天,我还将观察一下我的房间里简单的小东西,我要看看我脚下的小地毯的温暖颜色,墙壁上的画,将房子变成一个家的那些亲切的小玩意。我的目光将会崇敬地落在我读过的盲文书籍上,然而那些能看的人们所读的印刷字体的书籍,会使我更加感兴趣。在我一生漫长的黑夜里,我读过的和人们读给我听的那些书,已经成为了一座辉煌的巨大灯塔,为我指示出了人生及心灵的最深的航道。
在能看见的第一天下午,我将到森林里进行一次远足,让我的眼睛陶醉在自然界的美丽之中,在几小时内,拼命吸取那经常展现在正常视力人面前的光辉灿烂的广阔奇观。自森林郊游返回的途中,我要走在农庄附近的小路上,以便看看在田野耕作的马(也许我只能看到一台拖拉机),看看紧靠着土地过活的悠然自得的人们,我将为光艳动人的落日奇景而祈祷。
当黄昏降临,我将由于凭借人为的光明看见外物而感到喜悦,当大自然宣告黑暗到来时,人类天才地创造了灯光,来延伸他的视力。在第一个有视觉的夜晚,我将睡不着,心中充满对于这一天的回忆。
这一天,我将向世界,向过去和现在的世界匆忙瞥一眼。我想看看人类进步的奇观,那变化无穷的万古千年。这么多的年代,怎么能被压缩成一天呢?当然是通过博物馆。
有视觉的第二天,我要在黎明起身,去看黑夜变为白昼的动人奇迹。我将怀着敬畏之心,仰望壮丽的曙光全景,与此同时,太阳唤醒了沉睡的大地。
这一天,我将向世界,向过去和现在的世界匆忙瞥一眼。我想看看人类进步的奇观,那变化无穷的万古千年。这么多的年代,怎么能被压缩成一天呢?当然是通过博物馆。我常常参观纽约自然史博物馆,用手摸一摸那里展出的许多展品,但我曾经渴望亲眼看看地球的简史和陈列在那里的地球上的居民——按照自然环境描画的动物和人类,巨大的恐龙和剑齿象的化石,早在人类出现并以他短小的身材和有力的头脑征服动物王国以前,它们就漫游在地球上了;博物馆还逼真地介绍了动物、人类,以及劳动工具的发展经过,人类使用这些工具,在这个行星上为自己创造了安全牢固的家;博物馆还介绍了自然史的其它无数方面。
我不知道,有多少本文的读者看到过那个吸引人的博物馆里所描绘的活着的动物的形形色色的样子。当然,许多人没有这个机会,但是,我相信许多有机会的人却没有利用它。在那里确实是使用你眼睛的好地方。有视觉的你可以在那里度过许多收益不浅的日子,然而我,借助于想像中的能看见的三天,仅能匆匆一瞥而过。
我的下一站将是首都艺术博物馆,因为它正像自然史博物馆显示了世界的物质外观那样,首都艺术博物馆显示了人类精神的无数个小侧面。在整个人类历史阶段,人类对于艺术表现的强烈欲望几乎像对待食物、藏身处,以及生育繁殖一样迫切。在这里,在首都艺术博物馆巨大的展览厅里,埃及、希腊、罗马的精神在它们的艺术中表现出来,展现在我面前。
我通过手清楚地知道了古代尼罗河国度的诸神和女神。我抚摸了巴台农神庙中的复制品,感到了雅典冲锋战士有韵律的美。阿波罗、维纳斯、以及双翼胜利之神莎莫瑞丝都使我爱不释手。荷马的那副多瘤有须的面容对我来说是极其珍贵的,因为他也懂得什么叫失明。我的手依依不舍地留恋罗马及后期的逼真的大理石雕刻,我的手抚摸遍了米开朗基罗的感人的英勇的摩西石雕像,我感知到罗丹的力量,我敬畏哥特人对于木刻的虔诚。这些能够触摸的艺术品对我来讲,是极有意义的,然而,与其说它们是供人触摸的,毋宁说它们是供人观赏的,而我只能猜测那种我看不见的美。我能欣赏希腊花瓶的简朴的线条,但它的那些图案装饰我却看不到。
因此,这一天,给我光明的第二天,我将通过艺术来搜寻人类的灵魂。我会看见那些我凭借触摸所知道的东西。更妙的是,整个壮丽的绘画世界将向我打开,从富有宁静的宗教色彩的意大利早期艺术及至带有狂想风格的现代派艺术。我将细心地观察拉斐尔、达芬奇、提香、伦勃朗的油画。我要饱览维洛内萨的温暖色彩,研究艾尔·格列科的奥秘,从科罗的绘画中重新观察大自然。啊,你们有眼睛的人们竟能欣赏到历代艺术中这么丰富的意味和美!在我对这个艺术神殿的短暂的游览中,我一点儿也不能评论展开在我面前的那个伟大的艺术世界,我将只能得到一个肤浅的印象。艺术家们告诉我,为了达到深刻而真正的艺术鉴赏,一个人必须训练眼睛。一个人必须通过经验学习判断线条、构图、形式和颜色的品质优劣。假如我有视觉从事这么使人着迷的研究,该是多么幸福啊!但是,我听说,对于你们有眼睛的许多人,艺术世界仍是个有待进一步探索的世界。
我十分勉强地离开了首都艺术博物馆,它装纳着美的钥匙。但是,看得见的人们往往并不需要到首都艺术博物馆去寻找这把美的钥匙。同样的钥匙还在较小的博物馆中甚或在小图书馆书架上等待着。但是,在我假想的有视觉的有限时间里,我应当挑选一把钥匙,能在最短的时间内去开启藏有最大宝藏的地方。
我重见光明的第二晚,我要在剧院或电影院里度过。即使现在我也常常出席剧场的各种各样的演出,但是,剧情必须由一位同伴拼写在我手上。然而,我多么想亲眼看看哈姆雷特的迷人的风采,或者穿着伊丽莎白时代鲜艳服饰的生气勃勃的弗尔斯塔夫!我多么想注视哈姆雷特的每一个优雅的动作,注视精神饱满的弗尔斯塔夫的大摇大摆!因为我只能看一场戏,这就使我感到非常为难,因为还有数十幕我想要看的戏剧。
你们有视觉,能看到你们喜爱的任何一幕戏。当你们观看一幕戏剧、一部电影或者任何一个场面时,我不知道,究竟有多少人对于使你们享受它的色彩、优美和动作的视觉的奇迹有所认识,并怀有感激之情呢?由于我生活在一个限于手触的范围里,我不能享受到有节奏的动作美。但我只能模糊地想像一下巴荚洛娃的优美,虽然我知道一点律动的快感,因为我常常能在音乐震动地板时感觉到它的节拍。我能充分想像那有韵律的动作,一定是世界上最令人悦目的一种景象。我用手指抚摸大理石雕像的线条,就能够推断出几分。如果这种静态美都能那么可爱,看到的动态美一定更加令人激动。我最珍贵的回忆之一就是,约瑟·杰佛逊让我在他又说又做地表演他所爱的里卜·万·温克时去摸他的脸庞和双手。
今天,我将在当前的日常世界中度过,到为生活奔忙的人们经常去的地方去,而哪儿能像纽约一样找得到人们那么多的活动和那么多的状况呢?所以城市成了我的目的地。
下一天清晨,我将再一次迎接黎明,急于寻找新的喜悦,因为我相信,对于那些真正看得见的人,每天的黎明一定是一个永远重复的新的美景。依据我虚构的奇迹的期限,这将是我有视觉的第三天,也是最后一天。我将没有时间花费在遗憾和热望中,因为有太多的东西
要去看。第一天,我奉献给了我有生命和无生命的朋友。第二天,向我显示了人与自然的历史。今天,我将在当前的日常世界中度过,到为生活奔忙的人们经常去的地方去,而哪儿能像纽约一样找得到人们那么多的活动和那么多的状况呢?所以城市成了我的目的地。
我从我的家,长岛的佛拉斯特小而安静的郊区出发。这里,环绕着绿色草地、树木和鲜花,有着整洁的小房子,到处是妇女儿童快乐的声音和活动,非常幸福,是城里劳动人民安谧的憩息地。我驱车驶过跨越伊斯特河上的钢制带状桥梁,对人脑的力量和独创性有了一个崭新的印象。忙碌的船只在河中嘎嘎急驶——高速飞驶的小艇,慢悠悠、喷着鼻息的拖船。如果我今后还有看得见的日子,我要用许多时光来眺望这河中令人欢快的景像。我向前眺望,我的前面耸立着纽约——一个仿佛从神话的书页中搬下来的城市的奇异高楼。多么令人敬畏的建筑啊!这些灿烂的教堂塔尖,这些辽阔的石砌钢筑的河堤坡岸——真像诸神为他们自己修建的一般。这幅生动的画面是几百万人民每天生活的一部分。我不知道,有多少人会对它回头投去一瞥?只怕寥寥无几。对这个壮丽的景色,他们视而不见,因为这一切对他们是太熟悉了。
我匆匆赶到那些庞大建筑物之一——帝国大厦的顶端,因为不久以前,我在那里凭借我秘书的眼睛“俯视”过这座城市,我渴望把我的想像同现实作一比较。我相信,展现在我面前的全部景色一定不会令我失望,因为它对我将是另一个世界的景色。此时,我开始周游这座城市。首先,我站在繁华的街角,只看看人,试图凭借对他们的观察去了解一下他们的生活。看到他们的笑颜,我感到快乐;看到他们的严肃的决定,我感到骄傲;看到他们的痛苦,我不禁充满同情。
我沿着第五大街散步。我漫然四顾,眼光并不投向某一特殊目标,而只看看万花筒般五光十色的景像。我确信,那些活动在人群中的妇女的服装色彩一定是一幅绝不会令我厌烦的华丽景色。然而如果我有视觉的话,我也许会像其他大多数妇女一样——对个别服装的时髦式样感到兴趣,而对大量的灿烂色彩不怎么注意。而且,我还确信,我将成为一位习惯难改的橱窗顾客,因为,观赏这些无数精美的陈列品一定是一种眼福。
从第五大街起,我作一番环城游览——到公园大道去,到贫民窟去,到工厂去,到孩子们玩耍的公园去,我还将参观外国人居住区,进行一次不出门的海外旅行。我始终睁大眼睛注视幸福和悲惨的全部景像,以便能够深入调查,进一步了解人们是怎样工作和生活的。
我的心充满了人和物的形象。我的眼睛决不轻易放过一件小事,它争取密切关注它所看到的每一件事物。有些景像令人愉快,使人陶醉;但有些则是极其凄惨,令人伤感。对于后者,我绝不闭上我的双眼,因为它们也是生活的一部分。在它们面前闭上眼睛,就等于关闭了心房,关闭了思想。
我有视觉的第三天即将结束了。也许有很多重要而严肃的事情,需要我利用这剩下的几个小时去看,去做。但是,我担心在最后一个夜晚,我还会再次跑到剧院去,看一场热闹而有趣的戏剧,好领略一下人类心灵中的谐音。
到了午夜,我摆脱盲人苦境的短暂时刻就要结束了,永久的黑夜将再次向我迫近。在那短短的三天,我自然不能看到我想要看到的一切。只有在黑暗再次向我袭来之时,我才感到我丢下了多少东西没有见到。然而,我的内心充满了甜蜜的回忆,使我很少有时间来懊悔。此后,我摸到每一件物品,我的记忆都将鲜明地反映出那件物品是个什么样子。
我的这一番如何度过重见光明的三天的简述,也许与你假设知道自己即将失明而为自己所做的安排不相一致。可是,我相信,假如你真的面临那种厄运,你的目光将会尽量投向以前从未曾见过的事物,并将它们储存在记忆中,为今后漫长的黑夜所用。你将比以往更好地利用自己的眼睛。你所看到的每一件东西,对你都是那么珍贵,你的目光将饱览那出现在你视线之内的每一件物品。然后,你将真正看到,一个美的世界在你面前展开。
失明的我可以给那些看得见的人们一个提示——对那些能够充分利用天赋视觉的人们一个忠告:善用你的眼睛吧,犹如明天你将遭到失明的灾难。同样的方法也可以应用于其它感官。聆听乐曲的妙音,鸟儿的歌唱,管弦乐队的雄浑而铿锵有力的曲调吧,犹如明天你将遭到耳聋的厄运。抚摸每一件你想要抚摸的物品吧,犹如明天你的触觉将会衰退。嗅闻所有鲜花的芳香,品尝每一口佳肴吧,犹如明天你再不能嗅闻品尝。充分利用每一个感官,通过自然给予你的几种接触手段,为世界向你显示的所有愉快而美好的细节而自豪吧!不过,在所有感官中,我相信,视觉一定是最令人赏心悦目的。
20世纪,一个独特的生命个体以其勇敢的方式震撼了世界,她就是海伦·凯勒——一个生活在黑暗中却又给人类带来光明的女性,一个度过了生命的88个春秋,却熬过了87年无光、无声、无语的孤独岁月的弱女子。
然而,正是这么一个幽闭在盲聋哑世界里的人,竟然毕业于哈佛大学德吉利夫学院,并用生命的全部力量处处奔走,创建了一家家慈善机构,为残疾人造福。她不仅用行动证明了
人类战胜生命的勇气,而且还将自己所经历的痛苦和幸福记录下来,给后世以勉励。
海伦·凯勒一生一共写了14部著作。《我的生活》是她的处女作,作者以真实、自然的笔触再现了自己生命之初21年的生活,为世人留下了一首永难遗忘的生命之歌。该书出版于1902年。美国著名作家海尔博士评论说:“1902年文学上最重要的两大贡献是吉卜林的《吉姆》和海伦·凯勒的《我的生活》。”
整整100年,今天当我们重读这部著作时,依然能发现其所闪耀的光芒——人类的精神远远超越了时空的限制。书中人物所展现出的品质、意志、耐力等强烈地震撼着我们,给蒙尘的心灵以洗涤。
四肢健全的人,可能难以体验残疾的痛苦;正如和平年代的某些人,居然希望有战争刺激一样。殊不知,生命是脆弱的,当所有的假设变成现实时,一切已为时太晚,因此,无论是在什么样的年代,爱和勇气都是我们生存的基础,这也正是我们出版此书的目的。
《我的生活》在中国曾经出版过多个优秀的版本,但大多数都已经没有再版了,读者已经很难在书店看到这本书了。此外,海伦·凯勒许多著作也没有翻译成中文出版,人们对她的了解仅仅局限于一些简单的介绍。在综合这些问题的基础上,我们重新编译了这本书,把《我的生活》、《走出黑暗》、《老师》三本书以及发表在美国《大西洋月刊》上的著名散文《假如给我三天光明》进行汇编,完整系统地介绍了海伦·凯勒丰富、生动、真实而伟大的一生。许多文字还是第一次与中国读者见面。
在编译过程中,我们广泛参考了国内已经出版的许多译本,尤其是从著名翻译家朱原先生翻译的《我生活的故事》(中国盲文出版社,1998年第2版)中获益匪浅。
《假如给我三天光明》一文也有许多中文译本,我们选用了刘冬妮翻译的《假如我有三天看得见》(转自《外国散文经典》),原因在于该译文优美流畅,无法超越亦无法割舍。
编译者水平有限,译文错误不当之处,请读者指正。转引译文,无法与译者取得联系,尚望谅解,相关事宜,请与编译者联系。(echolh@sohu.com)
“读一本好书就是与一颗伟大的心灵对话。”我们希望那些激动人心,鼓舞人们上进的作品能够永远流传下去。
Three Days to See
[导读]马克`吐温曾说:“19世纪有两个奇人,一个是拿破伦,一个是海伦•凯勒。” 下面几段摘选自海伦•凯勒(Helen Keller)的自传《假如给我三天光明》,海伦虽然从小失明,但一个生活在黑暗中却是给人类带来光明的女性。 试想一个幽闭的盲聋哑世界里的人,竟然毕业于哈佛大学德克利夫学院,撰写了14部著作,并用生命的全部力量处处奔走,筹建慈善机构,为残疾人造福,被美国《时代周刊》评选为20世纪美国十大英雄偶像。在经历了种种的艰辛与磨难之后,她开始跨越了自己,挣脱出小我的圈子,她的心情逐渐开朗,“我要把别人眼睛所看见的光明当作我的太阳,别人的耳朵听见的音乐当作我的乐曲,别人嘴角的微笑当作我的快乐。”她接受了生命的挑战,她觉得自己获得了自由,内心深处的自由,她不仅仅是为了自己而活,她希望自己能奉献的不仅是几片绿叶,她要给世界整个春天。我们为之感动的不仅是文字本身的优美与真情,你的眼睛渐渐湿润了,因为你感受到的是伟大的心灵。
Most of us, however, take life for granted. We know that one day we must die, but usually we picture that day as far in the future. When we are in buoyant health, death is all but unimaginable. We seldom think of it. The days stretch out in an endless vista. So we go about our petty tasks, hardly aware of our listless attitude toward life.
…
I have often thought it would be a blessing if each human being were stricken blind and deaf for a few days at some time during his early adult life. Darkness would make him more appreciative of sight; silence would teach him the joys of sound.
Now and then I have tested my seeing friends to discover what they see. Recently I was visited by a very good friend who had just returned from a long walk in the woods, and I asked her what she had observed.. "Nothing in particular,” she replied. I might have been incredulous had I not been accustomed to such reposes, for long ago I became convinced that the seeing see little.
How was it possible, I asked myself, to walk for an hour through the woods and see nothing worthy of note? I who cannot see find hundreds of things to interest me through mere touch. I feel the delicate symmetry of a leaf. I pass my hands lovingly about the smooth skin of a silver birch, or the rough, shaggy bark of a pine. In the spring I touch the branches of trees hopefully in search of a bud the first sign of awakening Nature after her winter's sleep. I feel the delightful, velvety texture of a flower, and discover its remarkable convolutions; and something of the miracle of Nature is revealed to me. Occasionally, if I am very fortunate, I place my hand gently on a small tree and feel the happy quiver of a bird in full song. I am delighted to have the cool waters of a brook rush through my open finger. To me a lush carpet of pine needles or spongy grass is more welcome than the most luxurious Persian rug. To me the pageant of seasons is a thrilling and unending drama, the action of which streams through my finger tips.
Helen Keller: Three Days to See
[注释]
take life for granted: 把生命想当然
buoyant: 有浮力的, 轻快的
unimaginable: 想不到的, 不可思议的
vista: 展望, 回想
listless:倦怠的, 冷漠的,情绪低落的
incredulous:怀疑的, 不轻信的
accustom:使习惯于
symmetry:[] n. 对称, 匀称
silver birch:白桦树
shaggy:表面粗糙的
delightful:令人愉快的, 可喜的
velvety:象天鹅绒的, 柔软的
remarkable:adj.不平常的, 非凡的, 值得注意的, 显著的
convolutions:[] n. 回旋, 盘旋, 卷绕
brook:小溪
lush: 青葱的, 豪华的
luxurious: [] adj. 奢侈的, 豪华的
pageant: 壮观
thrilling: adj.毛骨悚然的, 颤动的, 发抖的,令人振奋的
[参考译文]
但是,我们大多数人把生活认为是理所当然的。我们知道,某一天我们一定会死,但通常我们把那天想象在遥远的将来。当我们心宽体健时,死亡几乎是不可想象的,我们很少想到它。时日在无穷的展望中延展着,于是我们干着琐碎的事情,几乎意识不到我们对生活的倦怠态度。
……
我常常想,如果每个人在他成年的早期有一段时间致瞎致聋,那会是一种幸事,黑暗会使他更珍惜视力,寂静会教导他享受声音。
我不时地询问过我的能看见东西的朋友们,以了解他们看到什么。最近,我的一个很好的朋友来看我,她刚从一片森林里散步许久回来,我问她看到了什么,她答道:“没什么特别的。”如果我不是习惯了听到这种回答,我都可能不相信,因为很久以来我已确信这个情况:能看得见的人却看不到什么。
我独自一人,在林子里散步一小时之久而没有看到任何值得注意的东西,那怎么可能呢?我自己,一个不能看见东西的人,仅仅通过触觉,都发现许许多多令我有兴趣的东西。我感触到一片树叶的完美的对称性。我用手喜爱地抚摸过一株白桦那光潮的树皮,或一棵松树的粗糙树皮。春天,我摸着树干的枝条满怀希望地搜索着嫩芽,那是严冬的沉睡后,大自然苏醒的第一个迹象。我抚摸过花朵那令人愉快的天鹅绒般的质地,感觉到它那奇妙的卷绕,一些大自然奇迹向我展现了。有时,如果我很幸运,我把手轻轻地放在一棵小树上,还能感受到一只高声歌唱的小鸟的愉快颤抖,我十分快乐地让小溪涧的凉水穿过我张开的手指流淌过去。对我来说,一片茂密的地毯式的松针叶或松软而富弹性的草地比最豪华的波斯地毯更受欢迎。对我来说四季的壮观而华丽的展示是一部令人激动的、无穷尽的戏剧。这部戏剧的表演,通过我的手指尖端涌淌出来。
烟花爆竹的产品种类
烟花爆竹产品种类有:
根据结构与组成、燃放运动轨迹及燃放效果,烟花爆竹产品分为以下9大类。
(1)爆竹类:燃放时主体爆炸(主体筒体破碎或者爆裂)但不升空,产生爆炸声音、闪光等效果,以听觉效果为主的产品。
(2)喷花类:燃放时以直向喷射火苗、火花、响声(响珠)为主的产品。
(3)旋转类:燃放时主体自身旋转但不升空的产品。
(4)升空类:燃放时主体定向或旋转升空的产品。
(5)吐珠类:燃放时从同一筒体内有规律地发射出(药粒或药柱)彩珠、彩花、声响等效果的产品。
(6)玩具类:形式多样、运动范围相对较小的低空产品,燃放时产生火花、烟雾、爆响等效果,有玩具造型、线香型、摩擦型、烟雾型产品等。
(7)礼花类:燃放时弹体、效果件从发射筒(单筒,含专用发射筒)发射到高空或水域后能爆发出各种光色、花型图案或其他效果的产品。
(8)架子烟花类:以悬挂形式固在架子装置上燃放的产品,燃放时、以喷射火苗、火花,形成字幕、图案、瀑布、人物、山水等画面。分为瀑布、字幕、图案等。
(9)组合烟花类:由两个或两个以上小礼花、喷花、吐珠同类或不同类烟花组合而成的产品。
按照药量及所能构成的危险性大小,烟花爆竹产品分为A、B、C、D四级。
A级:由专业燃放人员在特定的室外空旷地点燃放、危险性很大的产品。
B级:由专业燃放人员在特定的室外空旷地点燃放、危险性较大的产品。
C级:适于室外开放空间燃放、危险性较小的产品。
D级:适于近距离燃放、危险性很小的产品。
按照对燃放人员要求的不同,烟花爆竹产品分为个人燃放类和专业燃放类。
个人燃放类:不需加工安装,普通消费者可以燃放的C级、D级产品。
专业燃放类:应由取得燃放专业资质人员燃放的A级、B级产品和需加工安装的C级、D级产品。
求fleshflutter的SPN和J2的同人文 (她的LIVEJOURNAL没了T_T)英文的就可以~谢谢~请发michaelccm@qq.com
同求 不好意思 楼主有其他文吗 中英文都可以 最好F大和L大的 不好找啊
757290457@qq.com
PS 希望楼主不要生气
Flutter浪潮下的音视频研发探索
文/陈炉军
整理/LiveVideoStack
大家好,我是阿里巴巴闲鱼事业部的陈炉军,本次分享的主题是Flutter浪潮下的音视频研发探索,主要内容是针对闲鱼APP在当下流行的跨平台框架Flutter的大规模实践,介绍其在音视频领域碰到的一些困难以及解决方案。
分享内容主要分为四个方面,首先会对Flutter有一个简单介绍以及选择Flutter作为跨平台框架的原因,其次会介绍Flutter中与音视频关系非常大的外接纹理概念,以及对它做出的一些优化。之后会对闲鱼在音视频实践过程中碰到的一些Flutter问题提出了一些解决方案——TPM音视频框架。最后是闲鱼Flutter多媒体开源组件的介绍。
Flutter
Flutter是一个跨平台框架,以往的做法是将音频、视频和网络这些模块都下沉到C++层或者ARM层,在其上封装成一个音视频的SDK,供UI层的PC、iOS和Android调用。
而Flutter做为一个UI层的跨平台框架,顾名思义就是在UI层也实现了一个跨平台开发。可以预想的是未Flutter发展的好的话,会逐渐变为一个从底层到UI层的一个全链路的跨平台开发,技术人员分别负责SDK和UI层的开发。
在Flutter之前已经有很多跨平台UI解决方案,那为什么选择Flutter呢?
我们主要考虑性能和跨平台的能力。
以往的跨平台方案比如Weex,ReactNative,Cordova等等因为架构的原因无法满足性能要求,尤其是在音视频这种性能要求几乎苛刻的场景。
而诸如Xamarin等,虽然性能可以和原生App一致,但是大部分逻辑还是需要分平台实现。
我们可以看一下,为什么Flutter可以实现高性能:
原生的native组件渲染以IOS为例,苹果的UIKit通过调用平台自己的绘制框架QuaztCore来实现UI的绘制,图形绘制也是调用底层的API,比如OpenGL、Metal等。
而Flutter也是和原生API逻辑一致,也是通过调用底层的绘制框架层SKIA实现UI层。这样相当于Flutter他自己实现了一套UI框架,提供了一种性能超越原生API的跨平台可能性。
但是我们说一个框架最终性能怎样,其实取决于设计者和开发者。至于现在到底是一个什么状况:
在闲鱼的实践中,我们发现在正常的开发没有特意的去优化UI代码的情况下,在一些低端机上,Flutter界面的流畅性是比Native界面要好的。
虽然现在闲鱼某些场景下会有卡顿闪退等情况,但是这是一个新事物发展过程中的必然问题,我们相信未来性能肯定不会成为限制Flutter发展的瓶颈的。
在闲鱼实践Flutter的过程中,混合栈和音视频是其中比较难解决的两个问题,混合栈是指一个APP在Flutter过程中不可能一口气将所有业务全部重写为Flutter,所以这是一个逐步迭代的过程,这期间原生native界面与Flutter界面共存的状态就称之为混合栈。闲鱼在混合栈上也有一些比较好的输出,例如FlutterBoost。
外接纹理
在讲音视频之前需要简要介绍一下外接纹理的概念,我们将它称之为是Flutter和Frame之间的桥梁。
Flutter渲染一帧屏幕数据首先要做的是,GPU发出的VC信号在Flutter的UI线程,通过AOT编译的机器码结合当前Dart Runtime,生成Layer Tree UI树,Layer Tree上每一个叶子节点都代表了当前屏幕上所需要渲染的每一个元素,包含了这些元素渲染所需要的内容。将Layer Tree抛给GPU线程,在GPU线程内调用Skia去完成整个UI的渲染过程。Layer Tree中有PictureLayer和TextureLayer两个比较重要的节点。PictureLayer主要负责屏幕图片的渲染,Flutter内部实现了一套图片解码逻辑,在IO线程将图片读取或者从网络上拉取之后,通过解码能够在IO线程上加载出纹理,交给GPU线程将图片渲染到屏幕上。但是由于音视频场景下系统API太过繁多,业务场景过于复杂。Flutter没有一套逻辑去实现跨平台的音视频组件,所以说Flutter提出了一种让第三方开发者来实现音视频组件的方式,而这些音视频组件的视频渲染出口,就是TextureLayer。
在整个Layer Tree渲染的过程中,TextureLayer的数据纹理需要由外部第三方开发者来指定,可以把视频数据和播放器数据送到TextureLayer里,由Flutter将这些数据渲染出来。
TextureLayer渲染过程:首先判断Layer是否已经初始化,如果没有就创建一个Texture,然后将Texture Attach到一个SufaceTexture上。
这个SufaceTexture是音视频的native代码可以获取到的对象,通过这个对象创建的Suface,我们可以将视频数据、摄像头数据解码放到Suface中,然后Flutter端通过监听SufaceTexture的数据更新就可以顺利把刚才创建的数据更新到它的纹理中,然后再将纹理交给SKIA渲染到屏幕上。
然而我们如果需要用Flutter实现美颜,滤镜,人脸贴图等等功能,就需要将视频数据读取出来,更新到纹理中,再将GPU纹理经过美颜滤镜处理后生成一个处理后的纹理。按Flutter提供的现有能力,必须先将纹理中的数据从GPU读出到CPU中,生成Bitmap后再写入Surface中,这样在Flutter中才能顺利的更新到视频数据,这样做对系统性能的消耗很大。
通过对Flutter渲染过程分析,我们知道Flutter底层需要渲染的数据就是GPU纹理,而我们经过美颜滤镜处理完成以后的结果也是GPU纹理,如果可以将它直接交给Flutter渲染,那就可以避免GPU-CPU-GPU这样的无用循环。这样的方法是可行的,但是需要一个条件,就是OpenGL上下文共享。
OpenGL
在说上下文之前,得提到一个和上线文息息相关的概念:线程。
Flutter引擎启动后会启动四个线程:
第一个线程是UI线程,这是Flutter自己定义的UI线程,主要负责GPU发出的VSync信号时候用当前Dart编译的机器码和当前运行环境创建出Layer Tree。
还有就是IO线程和GPU线程。和大部分OpenGL处理解决方案中一样,Flutter也采取一个线程责资源加载,一部分负责资源渲染这种思路。
两个线程之间纹理共享有两种方式。一种是EGLImage(IOS是 CVOpenGLESTextureCache)。一种是OpenGL Share Context。Flutter通过Share Context来实现纹理共享,将IO线程的Context和GPU线程的Context进行Share,放到同一个Share Group下面,这样两个线程下资源是互相可见可以共享的。
Platform线程是主线程,Flutter中有一个很奇怪的设定,GPU线程和主线程共用一个Context。并且在主线程也有很多OpenGL 操作。
这样的设计会给音视频开发带来很多问题,后面会详细说。
音视频端美颜处理完成的OpenGL纹理能够让Flutter直接使用的条件就是Flutter的上下文需要和平台音视频相关的OpenGL上下文处在一个Share Group下面。
由于Flutter主线程的Context就是GPU的Context,所以在音视频端主线程中有一些OpenGL操作的话,很有可能使Flutter整个OpenGL被破坏掉。所以需要将所有的OpenGL操作都限制在子线程中。
通过上述这两个条件的处理,我们就可以在没有增加GPU消耗的前提下实现美颜和滤镜等等功能。
TPM
在经过demo验证之后,我们将这个方案应用到闲鱼音视频组件中,但改造过程中发现了一些问题。
上图是摄像头采集数据转换为纹理的一段代码,其中有两个操作:首先是切进程,将后面的OpenGL操作都切到cameraQueue中。然后是设置一次上下文。然后这种限制条件或者说是潜规则往往在开发过程中容易被忽略的。而这个条件一旦忽略后果就是出现一些莫名其妙的诡异问题极难排查。因此我们就希望能抽象出一套框架,由框架本身实现线程的切换、上下文和模块生命周期等的管理,开发者接入框架以后只需要安心实现自己的算法,而不需要关心这些潜规则还有其他一些重复的逻辑操作。
在引入Flutter之前闲鱼的音视频架构与大部分音视频逻辑一样采用分层架构:
1:底层是一些独立模块
2:SDK层是对底层模块的封装
3:最上层是UI层。
引入Flutter之后,通过分析各个模块的使用场景,我们可以得出一个假设或者说是抽象:音视频应用在终端上可以归纳为视频帧解码之后视频数据帧在各个模块之间流动的过程,基于这种假设去做Flutter音视频框架的抽象。
咸鱼Flutter多媒体开源组件
整个Flutter音视频框架抽象分为管线和数据的抽象、模块的抽象、线程统一管理和上下文同一管理四部分。
管线,其实就是视频帧流动的管道。数据,音视频中涉及到的数据包括纹理、Bit Map以及时间戳等。结合现有的应用场景我们定义了管线流通数据以Texture为主数据,同时可以选择性的添加Bit Map等作为辅助数据。这样的数据定义方式,避免重复的创建和销毁纹理带来的性能开销以及多线程访问纹理带来的一些问题。也满足一些特殊模块对特殊数据的需求。同时也设计了纹理池来管理管线中的纹理数据。
模块:如果把管线和数据比喻成血管和血液,那框架音视频的场景就可以比喻成器官,我们根据模块所在管线的位置抽象出采集、处理和输出三个基类。这三个基类里实现了刚才说的线程切换,上下文切换,格式转换等等共同逻辑,各个功能模块通过集成自这些基类,可以避免很多重复劳动。
线程:每一个模块初始化的时候,初始化函数就会去线程管理的模块去获取自己的线程,线程管理模块可以决定给初始化函数分配新的线程或者已经分配过其他模块的线程。
这样有三个好处:
一是可以根据需要去决定一个线程可以挂载多少模块,做到线程间的负载均衡。第二,多线程并发式能够保证模块内的OpenGL操作是在当前线程内而不会跑到主线程去,彻底避免Flutter的OpenGL 环境被破坏。第三,多线程并行可以充分利用CPU多核架构,提升处理速度。
从Flutter端修改Flutter引擎将Context取出后,根据Context创建上下文的统一管理模块,每一个模块在初始化的时候会获取它的线程,获取之后会调用上下文管理模块获取自己的上下文。这样可以保证每一个模块的上下文都是与Flutter的上下文进行Share的,每个模块之间资源都是共享可见的,Flutter和音视频native之间也是互相共享可见的。
基于上述框架如果要实现一个简单的场景,比如画面实时预览和滤镜处理功能,
1:需要选择功能模块,功能模块包括摄像头模块、滤镜处理模块和Flutter画面渲染模块,
2:需要配置模块参数,比如采集分辨率、滤镜参数和前后摄像头设置等,
3:在创建视频管线后使用已配置的参数创建模块
4:最后管线搭载模块,开启管线就可以实现这样简单的功能。
上图为整个功能实现的代码和结构图。
结合上述音视频框架,闲鱼实现了Flutter多媒体开源组件。
组要包含四个基本组件分别是:
1:视频图像拍摄组件
2:播放器组件
3:视频图像编辑组件
4:相册选择组件
现在这些组件正在走内部开源流程。预计9月份,相册和播放器会实现开源。
后续展望和规划
1:实现开头所说的从底层SDK到UI的全链路的跨端开发。目前底层框架层和模块层都是各个平台各自实现,反而是Flutter的UI端进行了跨平台的统一,所以后续会将底层也按照音视频常用做法把逻辑下沉到C++层,尽可能的实现全链路跨平台。
2:第二部分内容为开源共建,闲鱼开源的内容不仅包括拍摄、编辑组件,还包括了很多底层模块,希望有开发者在基于Flutter开发音视频应用时可以充分利用闲鱼开源出的音视频模块能力,搭建APP框架,开发者只要去负责实现特殊需求模块就可以,尽可能的减少重复劳动。
网站标题:flutterlive的简单介绍
网页URL:http://abwzjs.com/article/dsigchd.html