Skip to content

每周分享第1期

每周五网站和公众号同时发布,
过去一周值得分享的所见所得。

热点

西安奔驰女车主

这个瓜从上周末吃到了周三,终于和解。“补过生日会”不知是奔驰哪位想出来的,足足体现了中国式客户服务的温度。既然和解就是大欢喜(不然我们还期待什么样的结果呢?)。不管是奔驰还是视觉中国,都不能因为过错就一棒子打死…对吧?但是如果只处理单个事件而不在以后有所作为,很多权益冲突的事件依旧容易出现。

巴黎圣母院火灾

周二早上巴黎圣母院,朋友圈立马站队,一些人惋惜还没看过就没了,一些人晒起景点留影,各行业从业者也在蹭热点,什么保险啊、游戏啊。据说胜出者是游戏《刺客信条:大革命》,该游戏制作时花了两年多时间研究圣母院构造,做了1:1复原,这个可能会对巴黎圣母院修复有重大帮助。我觉得这个游戏也就是来蹭热度罢了,巴黎圣母院自己把自己研究的更彻底,Google Arts & Culture 也在做相关工作。

知识碎片

历史

汉朝开国皇帝刘邦比前朝的开国皇帝秦始皇只小3岁,应该没有代沟。另外,秦朝第二个皇帝胡亥,也就是秦始皇继承者,杀光了除自己以外所有秦始皇的子女,共32个(史家考证,但不一定就是100%确切的史实)。

诗歌和家庭教育

《女儿写诗》

废人王亮 从十年前开始, 在豆瓣上发表了180多篇日记,其中多篇跟女儿有关。去年11月的一篇《女儿写诗》突然风靡。日记讲述了他引导女儿写一首诗交作业的过程,循循善诱地带着女儿去思考,对家长乃至普通个人都非常有启发。另有一篇《女儿写诗后续》

辟谣

“据说新西兰有个传统职业叫扶羊人,工作就是在下雨天之后开直升飞机满农场转,看见倒在地上的羊,就下去扶起来,然后把羊毛上的水挤干。”
开直升机还挺酷的,但是称不上“传统职业”吧,羊倒了是真的,需要扶起来也没毛病,但是目前还没有这个广泛意义的“职业”。

动脑

桌上有23枚硬币,其中10枚正面朝上。现在蒙住你的眼睛,你也摸不出反正面,把这些硬币分成两堆。如何保证每堆正面朝上的个数相同?(答案就放下周吧~)

冷知识阶段汇总(第3期)

饮食

胡萝卜里没有脂肪。@旅行箱中的胖鸟

世界上每7个人里有1个人不喜欢香菜,中医觉得吃多了香菜会健忘。佛教伸直举的吃香菜是破戒。香菜和臭大姐的屁有相似成分(醛类化合物)。讨厌香菜的人还建了个网站http://www.ihatecilantro.com

香菜就是芫荽(yan2 sui,芫是多音字),清真有道名菜叫芫爆散丹,散丹就是羊肚。北京人常说的爆肚,有羊肚和牛肚,说散丹多是说羊肚,说百叶多是说牛肚。百叶和肚是同一种东西,市场上白色百叶是经过加工的。

香菜诞生于地中海,据说是张骞带到中国的。张骞还带来了葡萄、石榴、黄瓜。(据说黄瓜得名于“胡瓜”的谐音)

中医说的忌辛辣,不只是说辣椒和蒜,也包括很多刺激性食材,比如香菜。(据说吃药的时候忌辛辣毫无科学依据)

咖喱是多种调料混合的,比如有辣椒、姜、丁香、肉桂……但是怎么配比没有规定,所以咖喱有很多种味道。@旅行箱中的候鸟

脑白金其实就是褪黑素(哺乳动物和人类的松果体产生的一种胺类激素)。@哆啦A夢に

发烧不能吃煮鸡蛋。

木须肉里面的木须指鸡蛋,传言以前觉得鸡蛋一词不雅,炒碎了正好像木樨,就叫木樨肉。木樨是桂花别称。

自然

广告语“一果一叶一黄芪(qi2)”,是说银杏果和芦荟叶。

三文鱼的肉之所以是橙红色,不是血色,是储存在肌肉里的虾青素。

据说,你每天喝的水中,几乎每个水分子都曾经被恐龙喝过。

一个人死后会不会所有的原子巧合的组在了一起形成一个一模一样的自己。不会,因为这是个熵减的过程,违背热力学。@槑少年(我也没懂)

大熊猫要不停的吃竹子,因为它的消化系统决定的,它没有食草动物具有的用于储存食物的复杂的胃和盲肠。@好名字可以让你的朋友更容易认识你

海带不是一种植物 但是它们可以进行光合作用。@旅行箱中的候鸟

凤梨就是菠萝,提子就是葡萄,玫瑰就是月季,奇异果就是猕猴桃,车厘子就是樱桃。车厘子名字来源于“ cherry”。

猪的体脂率在15%-18%。

西瓜籽常在有深色花纹的地方,切西瓜沿着深色花纹容易剔除瓜籽。@Aydin王艾丁

蜡梅不是“腊梅”,多数人认为腊梅是因为腊月开花。其实蜡梅是因为花瓣常被一层蜡质覆盖。但是约定成俗,“腊”梅写法也没有错。@唐葱葱

地理

地球东西方的叫法和划分起源于英国,区分点是西经20度和东经180度,这两条经线基本穿越海洋,以至于不会把某个行政国家分开。@旅行箱中的候鸟

“浩特”在蒙语里是定居点、城市的意思。呼和浩特意为青涩的城市,二连浩特意为五光十色的城市。包头是蒙语包克图的谐音,意思是鹿。传说成吉思汗在此打猎看见了鹿,于是以此命名此地。

韩国首都汉城,原名汉阳,和中国很多地名一样,因为在汉水之阳。朝鲜王国定都汉阳之后改称汉城。汉城的韩语是한성부(发音类似han seng fu,汉城府),很明显汉城是一个中文汉化的名字。1948年城市改称서울(发音类似so ur),서울是一个朝鲜自有词汇,没有对应的汉字,意思是“首都”。2005年,韩国政府宣布,서울的中文译名正式改为“首尔”。所以韩国以前的首都叫汉城,现在叫首尔。

历史

英文7月 July 名称来源于凯撒大帝 Julius Caesar,凯撒死后,以他的名字命名其出生月份7月。

凯撒死后,凯撒的甥外孙兼义子屋大维继任罗马掌权者。屋大维扩张统治并建立了罗马帝国。元老院尊他“奥古斯都”(神圣伟大)。奥古斯都也想用自己的名字命名月份,就选了自己被封奥古斯都的8月,称8月为Augustus,但是之前历法8月只有30天,比凯撒少一天,于是从2月挪了1天到8月。现在7月8月都是31天。

欧洲历史的三个时期:古典时代、中世纪、近现代。古典转中世纪的标志是西罗马帝国灭亡(476年),中世纪转近现代标志是东罗马帝国灭亡(1453年)。

玄奘俗名陈祎,是东汉名臣陈寔的后代,陈寔是成语“梁上君子”的创造者。

文化

“拿铁”是牛奶。意大利语 Latte 就是牛奶。不是 莱特儿,是 拉tei

大白菜有个很雅的别名:菘(song1)。南朝周顒(yong4)隐居钟山,有人问他什么最好吃,他说“春初早韭,秋末晚菘”。《北山移文》中说周顒隐居不是真的隐居,而是靠隐居之名提高自己的身价。于是《北山移文》作者说他“厚颜无耻”,这就就是“厚颜无耻”的出处。

经常用到dashboard(仪表盘)这个词,对其中dash这个毫不相关的词根有些在意。原来dashboard最早是指马车前面的挡泥板,到了汽车时代用途变成了安装各种仪表的面板。
image

B站的名字bilibili来源于动漫《魔法禁目录》中具有超能力的御坂美琴在开大招时身上发出bilibili的电流声,这成了她的外号。@旅行箱中的候鸟

RIO预调鸡尾酒的名字 Rio(里约)是里约热内卢(葡萄牙语Rio de Janeiro)的简称,因为RIO首席调酒师祖籍是里约热内卢,命名时索性用自己的家乡命名了该酒品牌。

image

兔儿爷按民俗不能当玩具,是雌性,据说是月亮上的玉兔,所以生日八月十五。另,八月十五祭拜月亮,男性不参加。“男不祭月女不祭灶”。另另,兔儿爷也指旧时代男扮女装为男性提供性服务的男妓。@旅行箱中的候鸟

植树节是孙中山忌日,1928年,政府为纪念孙中山逝世3周年,设立植树节,1979年由邓小平提议恢复。

其他

世界上所有的人加起来,理论上可以塞进一个长宽高为1公里的大箱子里。三峡水库的库容约等于40个这样的箱子。


冷知识阶段汇总(第1期)

冷知识阶段汇总(第2期)

这个系列可能以后不会更新了,计划把以后的汇总放到每周一期的分享里,不会专门为冷知识作总结了。

image

Charles注册码

Charles 4.2.8 测试可用

Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

什么是PAC文件

什么是PAC文件?

PAC文件是在使用代理服务器的时候,告诉浏览器该如何选择的一个配置文件。所以PAC文件又称为代理自动配置文件。

PAC文件实质上是JavaScript代码。

如何编写PAC文件

下面是一个最简单的PAC文件代码:

function FindProxyForURL(url, host) {
    return 'DIRECT'
}

代码中声明了一个函数 FindProxyForURL(),这个函数是PAC文件必须的(函数名必须如此)。该函数接收两个参数 url 和 host,如果 url 是 https://feizhaojun.com/?p=2231,host 就是 feizhaojun.com。该函数返回值为“DIRECT”,意味着什么都没做,对于任何URL,都是“DIRECT”(直接连接)。

PAC文件的返回值有哪些?

除了 return ‘DIRECT’,还有 PROXY 和 SOCKS5:

  • PROXY 使用http代理,后面跟主机地址和端口
  • SOCKS5 使用socks5代理,后面跟主机地址和端口

例如:

function FindProxyForURL(url, host) {
    return 'PROXY host.proxy.com:3128'
}

或者

function FindProxyForURL(url, host) {
    return 'SOCKS5 socks5.proxy.com:1080'
}

也可以 return 多个类型:

function FindProxyForURL(url, host) {
    return 'DIRECT; PROXY host.proxy.com:3128; SOCKS5 socks5.proxy.com:1080'
}

上面返回值的意思是:

  • 对于所有 url,直接连接(DIRECT);
  • 如果不能直接连接,则使用PROXY,也就是http代理;
  • 如果还不能连接,再使用SOCKS5。

如果你确定知道某个url不能直接连接,需要使用代理,那么可以在函数中判断,做不同的返回值:

function FindProxyForURL(url, host) {
    if (shExpMatch(url,"*.google.com/*")) {
        // Google 不能访问,使用http代理
        return "PROXY host.proxy.com:3128";
    }
    if (shExpMatch(url, "*.wikipedia.com:*/*")) {
        // 维基百科网站使用 socks5 代理。
        return "SOCKS5 socks5.proxy.com:1080";
    }
    if (isInNet(host, "127.0.0.1", "dnsResolve(localhost)")){
        // 本地地址直接访问
        return "DIRECT";
    }
    // 不确定的情况,使用多种方式尝试
    return 'DIRECT; PROXY host.proxy.com:3128; SOCKS5 socks5.proxy.com:1080'
}

shExpMatch函数用来匹配url或者host,匹配的方式和DOS的通配符相似。例如前面用到的”.google.com/“可以匹配任意包含”.google.com/”的字符串。一般PAC文件不需要太复杂的匹配。

isInNet函数用来返回请求的host是否在指定的域内。值得注意的是,isInNet的第二个参数必须是IP,不能是主机名。因此需要把主机名转换成IP。比如上面的dnsResolve(localhost)。

更多PAC文件的介绍

PAC还提供了不少其它函数,这里列出了PAC代理文件中可以使用的JavaScript函数。

你也许想把pac文件发布到Internet上,这样其它用户就只需要在浏览器中指定pac文件的url即可。你得配置你的服务器映射 .pac 文件后缀到MIME类型: application/x-ns-proxy-autoconfig 如果使用的是Netscape服务器,编辑 config 目录下的 mime.types 文 件。如果是Apache, CERN or NCSA服务器,使用 AddType 指令。

这里有一些大家编写的PAC文件:

如何使用PAC文件?

Windows

Internet选项 -> 连接 选项卡 -> 局域网设置(如果是电脑拨号上网, 这里点’设置’) -> 使用自动配置脚本 -> 填入PAC地址 -> 确定

image

Mac OS X

系统设置 -> 网络 -> 高级 -> 代理 -> 自动代理配置 -> URL中填入PAC地址 -> 好

iOS (iPhone/iPad)

1 打开设置, 选择Wi-Fi

image

2 选择当前使用的热点

image

3 拖到最下面的代理设置,选择”自动”,填写PAC地址

image

Android

安卓由于5.0以下系统不支持此设置,请参考此帖下载第三方APP应用

如何使用shadowsocks客户端

请参阅下方对应的系统,包括Windows/Mac/iOS/Android/Linux:

Windows 系统

  1. 首先下载客户端 版本v4.1.4这里有更多版本的下载
  2. 下载之后点击运行,配置服务器如下图:

image

Mac

iOS (iPhone/iPad/iTouch)

  • iOS:因为中国区不允许此类Apps,需要注册美区账号,可以在美区商店下载 Potatso Lite 或者 Outline App 或者 NetShuttle。

安卓 Android

Linux

下载之后填写服务器地址、端口、密码、加密方式,一共4项。

冷知识阶段汇总(第2期)

冷知识阶段汇总(第1期)

视觉

下图中横向的4道纹路是平行的

image

下图中的圆都是同一个颜色:

image

下面左右两张图是一模一样的:

image

当你分别注视下图中的红点和黄点时,周围点的转动方向是不一样的。

image

人物

东汉有个太监,凭借为皇后诬陷其他嫔妃上位;还诬陷太子刘庆,导致刘庆被废为清河王,导致嫔妃及其妹妹服毒自杀。皇后死后,他立即又傍上了另一个邓皇后。邓皇后驾崩,之前被他诬陷的废太子的儿子汉安帝当了皇帝,于是这个太监被命令去自首。太监为了避免受辱,在洗浴全身并换上整洁的衣冠后服毒自杀。这个太监在政治上不堪入目。但是,他改进了造纸术。他就是蔡伦。

郭德纲的师父侯耀文曾出轨韦唯。在这之前韦唯和付笛生在一起。

金庸的母亲是徐志摩父亲的堂妹。金庸的堂姐嫁了琼瑶的三舅。钱学森的岳母和金庸是姑侄。诗人穆旦是金庸的堂兄。

自然

牙齿最多的动物是蜗牛,多的有20000多颗。

水结冰后体积膨胀的重大意义(《万物简史》):大多数液体冷冻成固体时体积会缩小大约10%。但是水结成冰体积会不可思议地增加10%。冰块体积膨胀,所以会浮在水上。要是冰块体积收缩,就会往下沉,湖泊和海洋会从底部往上结冰。没有了表面的冰层保护内部的热量,水的热量会释放出去,使水变得更凉,形成更多的冰块。过不多久,连海洋也会结冰,而且海洋会在很长时间里保持冰冻,这样的条件几乎不会孕育生命。

台风在北半球都是逆时针旋转,南半球都是顺时针旋转,赤道上不会形成台风。

关于鲨鱼:在全球范围内,鲨鱼每年杀死6个人,人类每年杀死0.75-1亿只鲨鱼。在400多种鲨鱼中,牛鲨、虎鲨、大白鲨最危险。但即便如此,大部分伤人事件都是源于好奇心、而非恶意。鲨鱼是海洋生态系统里的重要环节。鲨鱼灭绝会引起多米诺效应,影响大量物种,甚至包括珊瑚和藻类。如果没有鲨鱼,大型捕食性鱼类会泛滥成灾,吃掉太多以藻类为生的鱼类。于是,藻类将泛滥成灾,夺走珊瑚的阳光。美国科学家发现,西海岸的鲨鱼会在加州和墨西哥之间走南闯北,在太平洋中部待好几个月;东海岸的鲨鱼会在纽芬兰和墨西哥湾之间往返旅行。大白鲨、虎鲨、灰鲭鲨需要不停地游动,才能够保持呼吸。鲨鱼通常很长寿,大白鲨可活70年,格陵兰睡鲨寿命可达400年!事实上,格陵兰睡鲨似乎是世界上最长寿的脊椎动物。据估计,它们活到150岁才性成熟。

欧洲鳗鱼会横渡五千多公里的大西洋到墨西哥湾的马尾藻海域产卵。而它们之所以会选择这么遥远的一个地方,可能是因为鳗鱼是一种有着 1.6 亿年历史的物种,而在当初,两个大洲还间的距离还没那么远。随着板块的漂移,一代又一代的鳗鱼顽强的坚守住了这一传统。这也是鳗鱼苗比黄金还贵的原因……目前鲜有人工繁殖鳗鱼的。

一年有二十四节气,但是这24个日子间隔天数并不一样。因为7月份地球经过远日点,公转速度慢,1月份近日点公转速度快,但是自转速度不变(一天),所以在7月份地球公转同样的角度要比1月少1-2天。夏至到小暑有16天左右,而冬至到小寒只有14天左右。二十四节气是农历的组成部分(因为和耕种时节有关),但不是阴历。因为二十四节气和地球公转角度(太阳)有关系,所以是阳历。和月球公转有关的才是阴历。

鲤鱼一侧有36片鳞,每片鳞边上都组成了一个“十”字,36乘10是360,古代360步为一里。所以这个就叫鲤鱼。

据说等到2050年,海洋里的塑料就会比鱼还多。

野生苦杏仁含有大量的氰化物。但是中东的部落一直在种植并食用它们最终培育出了无毒的品种。

鲱鱼靠放屁交流。

火龙果是仙人掌近亲。

地理

吉林是吉林乌拉的简称,是满语,吉林谓沿,乌拉谓江,吉林乌拉意思就是沿江的地方。1685年康熙下令去掉乌拉,称吉林。

牡丹江的名字和花卉没有关系,而是源于满语“穆丹乌拉”,意思是弯曲的河流。“穆丹”意为弯曲,“乌拉”意为江。

大连名称来源于俄语“达里因”,意思是“远处”。还有一说俄国人之所以叫“达里因”是因为当地已有称呼“大连”,此称呼因为海湾像一个褡裢,“褡裢湾”逐渐演化成“大连湾”。还有说法是当地满族称此地为“嗒林/戴尔仁”(意为“大海之滨”)。中华人民共和国成立后,旅顺大连合成旅大市,1981年才有大连市。此外还有其他诸多说法:1) 诸多小湾连成大湾,故称大连湾。2) 南方客商曾来此贩卖褡裢,由此称“褡裢湾”,后来叫作大连湾。3) 湾内盛产牡蛎,俗称大蛎湾,后演变为“大连湾”。

湖北武汉中的“汉”、陕西汉中的“汉”、湖北襄阳的“襄”都是一个意思,指的是汉水。汉语得名于汉朝,汉朝也得名于汉水。“汉”这个字本来指天上银河,古人觉得汉水浩荡如天上银河。“汉”字是形声字,右边的“又”和“难”字左边的“又”一样,都是“堇”。再之前,“汉”字右侧上面是或,下面是土,意为广大,用来形容宇宙和银河。

image

内蒙古的意思是“内扎萨克蒙古”的简称,“蒙古”是蒙语永恒的火,意为长盛不衰。

宁夏的意思是西夏安宁,西夏是党项族族政权,这个民族已经消失了。西夏的意思是西边的夏国,夏是音译,意思是白,所以西夏又叫,大白高国。

西伯利亚里面的西伯,就是“鲜卑”的意思。鲜卑就是建立北魏的那个民族,有个杰出领袖拓跋宏,推行了众多汉化政策,据说是“宇文”姓的祖先。

藏红花在中国的道地产区(质量最好的产区)在上海崇明。

江苏省最高的地方在连云港花果山,最高峰只有620多米。江苏盐城市唯一一座山是盐城中学里面的一个土堆,名字叫共青山,海拔8米。盐城人想爬山那必须去外地。

中国陆地最低点在吐鲁番艾丁湖,湖干了的时候湖底海拔-161m。

生活

自行车辐条是靠拉力而不是支撑力。

多数自行车的左刹车是后轮。

相扑选手的体脂率一般在20%以下,而普通人是25%左右。

四季酒店的LOGO上真的有四个季节。

image

如果你在纽约中央公园迷路,那么在周围1600根灯柱中,每一根灯柱上都有一个特殊代码,可以帮助你弄清自己所在的位置。

30年前,房屋起火后你有大约17分钟的时间逃离。而现在已经缩短到3至4分钟,因为更新的房屋及里面的家具会燃烧得更快。

微波炉是被偶然发明的,当珀西·斯宾塞站在一个启动的雷达装置前时,发现自己口袋里的糖果融化了。

普通男性必须喝掉149罐红牛才会因咖啡因过量而死亡。但是在喝下那么多之前,就会呕吐出来。

在全世界范围内,平均每0.05秒就有97只鸡被宰杀。

文化

因为单词“Go”有围棋的意思,这就是为什么 Google 的人工智能围棋软件叫 AlphaGo。

东野圭吾的名作《びゃくやこう》,中文版的书名直译为《白夜行》,英文版的书名是《Journey Under the Midnight Sun》。为什么英文版要用“Midnight Sun”这样的意象,而不是“White night”这种直译的方式?这是因为“White night”在英文中是固定搭配的名词,看上去是“白夜”没错,但意思是“不眠夜”。

英语sugar,以及德语zucker 法语sucreś,源于梵文śarkarā。英语candy,以及德语kandiren 法语candi,源于梵文cīnī。cīnī的意思是“中国的”。śarkarā和cīnī是两种不同的糖,代表两种不同的制糖法,前者是古印度发明的,大概是直接从植物中提炼的硬糖。后来经过中国人改进有了红糖和冰糖,又传入印度,叫做cīnī。

管辖的辖字,之所以是“车”字旁,是因为“辖”字本意是车上的部件,插在车轴两段防止车轮滑脱。《淮南子》说,夫车能转千里者,以其要在三寸之辖。后来引申为管辖。

image

在中国宗法中,妻又称为妇,夫又称为婿。妻之父称婚,夫之父称为姻。两家结合便称为婚姻。两婿称为娅(俗称连襟)。

剑南春中的“剑南”是地名,为剑南春所在地绵州别称,之所以叫剑南,是因为在剑门关以南,剑门关相传是诸葛亮在大剑山和小剑山之间修的关隘。大剑山在山海经里面叫做“梁山”,所以四川在古代称梁州,是九州之一。而酒一般叫做 什么什么春,据说,是因为粮食秋收以后,经过一冬的发酵,在春天酿出的酒是最好的,称作“春酿”。所以 剑南春,这个短语,大概类似于“五年陈”“碧螺春”。李玉刚《新贵妃醉酒》里面提到过剑门关:
“金雀钗玉搔头是你给我的礼物,
霓裳羽衣曲几番轮回为你歌舞,
剑门关是你对我深深的思念,
马嵬坡下愿为真爱魂断红颜。” 这四句歌词每一句都是一个典故,金雀钗玉搔头 的典故最初是汉武帝的,后来白居易在长恨歌里面写“花钿委地无人收,翠翘金雀玉搔头”来形容唐玄宗对杨玉环的四年。霓裳羽衣曲大家应该都知道了,马嵬坡下死大家也知道了,剑门关是说安禄山造反之后唐玄宗逃到四川,途径剑门关,白居易写“黄埃散漫风萧索,云栈萦纡登剑阁”剑阁就是剑门关,现在四川还有剑阁县。

扑克牌中的4个K人物都不一样,只有方块K是侧脸,而黑桃K是以色列国王大卫,就是他:

image

岁和年的区别:岁,这个字来源于岁星(木星),古人认为木星也是绕地球转的,木星转一圈是12年,所以木星在天空中移动1/12之一的距离叫做“岁”,进而引申到:太阳轮回一年到同一个直射点的位置,进而引申到某个日期到下年某个日期的时间段。年,这个字来源于一个人背着稻谷,意为庄稼成熟,古时中原一年收成一次。所以岁是从一个日期到明年这个日期的时间长度(可以从任何日子开始算),年是从一月到12月这一年。岁强调的是长度,年强调的是单位。后来……这两个字混了,意思一样。

一个时辰等于两小时,“小时”之所以叫“小时”,就是因为是比一个时辰很小,称“小时辰”。

西方的十二星座源于巴比伦,早在东汉时期就已经随佛教传入中国。十二星座和中国的二十八宿道理是一样的,都是黄道分割,两者也是相互对应的,中国古代也曾把黄道分12份,叫做十二次,和十二星座大致对应,角度略有出入。

英制单位(imperial)比公制单位更有趣,英制长度是12进制,1英尺(foot)等于12英寸(inch),和计时单位一样,24小时、60分钟、都是12的倍数。12进制可以方便的二等分三等分四等分,而十进制只能2等分,1英寸差不多是成人拇指宽度。而对于低精度,英制习惯用1/2、1/4、1/8、1/16,用分数不用小叔,每一梯度都是前面的一半,非常实用。生活中还有很多12进制的东西,比如十二生肖,古人用生肖和干支来记录时间,60年正好是一个轮回。华氏温度里面,水的冰点是32℉沸点是212℉,中间间隔180度,也是12的倍数。而0℉一般是生活中的低温极限,100℉是高温极限,50华氏度是10摄氏度,是生活气温的适中点,穿一件外套正好可以出门。角度也是12的倍数,月球每年公转12圈,12进制对日常生活意义重大,因此,英文里面11和12都有专门的单词 eleven 和 twelve。

元素周期表上唯一没有出现的字母是 J。

北京地铁,英文叫做 Beijing Subway,去了上海,你发现地铁叫做 Metro。其实地铁在不同的城市有不同的习惯称谓,而且种类还挺多:

metro(法国巴黎、中国大陆部分地区)
MRT(新加坡、台北、高雄等)
MTR(特指香港)
Overground(特指地上轨道)
Railway(特指地上轨道)
Subway(美国及周边地区、北京)
Tube(特指伦敦)
Underground(特指伦敦)

越南人民军海军仍然称呼海军将官为都督,海军上将=都督,海军中将=副都督,海军少将=准都督 。

万年历之所以叫万年历,据说是商朝一位叫做万年的人发明的。(不过我觉得有传说成分,也可能是他发明了之后大家才给他起名万年)

体操的英语“Gymnastics”在语言学上的意思是“裸体训练”。这个词是由两个古希腊单词“gumnasia”和“gumnos”演化来的,分表表示着“运动员训练”和“裸体的”。这是因为许多古希腊运动员会为了奥运会裸着身子训练。

西方情人节叫做 Valentines’ Day,本意是瓦伦丁节。瓦伦丁是人名,大约生活在3世纪的罗马。关于瓦伦丁的传说有两个主要版本,一是说他被冤入狱与狱长女儿产生了炽烈的爱情,一是说他在服兵役禁止结婚的年代作为教父违法为大量士兵证婚。


 
最新的相关文章将会在公众号更新,欢迎关注(下方二维码),如果大家对冷知识感兴趣也可以加入我们的微信群交流,点此添加微信

image

HTML canvas框架汇总

HTML canvas的框架很多,而且侧重不同,比如 Three.js 是有名的3D框架,d3.js 偏重于数据展示。

名称 领域 框架 移动端 文档 其他
ThreeJS 3D N Y 强大的绘图引擎
playCanvas 3D Y Y 游戏引擎,提供了一个可视化的编辑工具 playCanvas Editor
Egret 2D+3D Y Y 国产,多端游戏引擎
PixiJS 2D Y WebGL引擎
zrender 2D N Y 为ECharts而生
KONVA 2D en
KineticJS 2D N 缺乏示例
Fabric.js 2D en Github 11679 stars
CREATEJS
Paper.js
Two.js 2D
spritejs 2D 国产优秀库,偏重展示和动画
jCanvas 基于jQuery
oCanvas
Processing.js
RGraph 2D 图表解决方案
Zebkit
matter.js
Phaser HTML5游戏框架
heatmap.js 2D 热力图

谜案馆:故宫《迷宫·如意琳琅图籍》攻略玩法

UPDATE 2019-04-02 10:32

本文基于故宫出版社互动解谜游戏书《如意琳琅图籍》,目前基本已给出全部答案,答题细节还在更新,也欢迎大家加我微信进微信群交流,也可以一起做实地任务。(群二维码在最下面)

在最后附目标成就线索:目标达成、解锁结局、史实收集、物品收集。

初章 梦入紫禁

太和异象

太和异象答案:

1) 下面两个选项没区别,殊途同归:

  • 继续待在广场 ✔
  • 仔细聆听音乐 ✔

2) 根据诗句分辨出一个地名:

  • 断虹桥

本节收集史实: 画画人、太和殿、漆黑之书(如意琳琅图籍)

十八棵槐

十八棵槐答案:

1) 《快雪时晴贴》隐藏了什么秘密?

  • 琳琅宝藏

2) 字帖背面透露着信息…

  • 就在此宫

本节收集史实: 西华门、启祥宫、金水河、十八棵槐

第一章 万寿盛筵

殿前观礼

殿前观礼答案:

1) 图籍中云锣图看出四个字来:

  • 寻找八音

本节收集史实:
卯时三刻、如意馆、采冰(宫中采冰)、崇庆皇太后、上徽号、大朝、工尺谱、中和韶乐

礼乐度量

物品收集

猫:答案“太和殿前嘉量”之后的图片拉到最右边,猫在右下角

礼乐度量答案:

1) 图籍中翻到八音那几页,开始思考其中的含义…

  • 太和殿前嘉量

(这个要注意,图籍中已经把“量”字圈出来了,答案也要写上)

2) 选择:两个答案都可以

  • 找姚文瀚问万寿图 ✔
  • 太和殿附近找机会 ✔

3) 选择:

这里如果选择第1、3项,会终止游戏回到之前的关卡,但是可以解锁不同的结局,所以建议先选1,再选3,最后选择第2项继续往下进行。

  • 从右翼门直接上三台 → 解锁“逐出紫禁城”
  • 走中右门叠落墙台阶 ✔
  • 从正中央大胆登三台 → 解锁史实“丹陛石”和结局“杖刑致死”

4) 嘉量容量单位与图籍中剖面图一一对应暗藏的信息:

  • 庆隆尊养

本节收集史实: 敔、嘉量、三台、姚文瀚、起稿(万寿图起稿)、八旬万寿图、庆隆尊养

一等画师

无题目

腰牌买卖

腰牌买卖答案:

1) 选择:

可以先选择“回启祥宫…”解锁结局,然后回到本关卡继续。

  • 回到启祥宫等机会 → 解锁“碌碌无为”
  • 在慈祥门伺机而动 ✔

本节收集史实: 腰牌、内务府、胡世杰、献舞(乾隆献舞)

慈宁画样

慈宁画样答案:

1) 对联暗藏玄机,想到了什么…

  • 瑞兽化龙

2) 图籍四只瑞兽组合一条龙

  • 慈宁宫脊兽无鳞者

3) “无鳞脊兽”到底藏了什么秘密呢?

  • 纵有百闻千问

4) 选择:

因为我们前面解锁过“碌碌无为”了,所以这里直接选择“本来就不必…”

  • 明天再去做详细记录 → 解锁“碌碌无为”
  • 本来就不必仔细刻画 ✔

5) 图籍中《聚瑞图》题诗用意为何?

  • 如意门

6) 四张宝物小画拼图:(这个题注意下,解谜要求撕开图籍中的一页,不是从书口那里撕!是从里面有一个刻好的虚线撕开。然后根据圈圈的形状找出拼图的对应文字。但是很多朋友舍不得撕开,那就直接输入下面的答案!)

  • 永寿宫彩云图

本节收集史实: 寿康宫、屋顶(紫禁城屋顶)、脊兽、齐闵王(骑凤仙人)、如意门

第二章 宫女禾心

嘉祉初遇

嘉祉初遇答案:

本节三个选择题,连续三次拒绝禾心,可以解锁目标“宁不相识”,建议先连续拒绝。不过!这里先选“真烦人…”再选“逗逗她”,才能收集史实“贝勒”,完成上面之后如果还回到这里,建议直接选“先忍了……”。

1) 选择:

  • 真烦人,把她打发走吧 ✔
  • 先忍了,打探她的事儿 ✔

2) 选择:

  • 冷淡拒绝 ✔
  • 逗逗她 ✔

3) 选择:

  • 和她聊聊 ✔
  • 撒腿就跑 ✔

4) 《永寿宫彩云图》指向这个地方…

  • 漱芳斋博古格

本节收集史实: 漱芳斋、书福(漱芳斋书福)、赐福苍生笔(清宫毛笔)、贝勒

淑芳听戏

淑芳听戏答案:

1) 四张宝物小图对应博古格的文字:

  • 白石道人

2) 选择

虽然前面已解锁“杖刑致死”,但是这里我们依旧先选择“一把夺回图籍”,然后回到“嘉祉初遇”小节,收集史料“贝勒”,然后回到这里再选择“好声央求…”

  • 好声央求归还 ✔
  • 一把夺回图籍 → 解锁“杖刑致死”

本节收集史实: 封印休假、门神、三清茶

戏里玄机

戏里玄机答案:

1) 白石道人乐谱一萼红错误的玄机:

  • 储秀宫永琰像

2) 选择:

建议先解锁“满门抄斩”,再重回本关卡选择“大胆撒谎”,因为前面已解锁“碌碌无为”,不用选“推出禾心”

  • 走为上策 → 解锁“满门抄斩”
  • 大胆撒谎 ✔
  • 推出禾心 → 解锁“碌碌无为”

本节收集史实: 永琰、西洋画法、上元(上元节)、武英门、大小金川(大小金川之役)

上元之约

上元之约答案:

1) 选择:

这里前两个选项都选过后才能解锁目标“逛吃逛吃”,建议先选“去逛庙会”

  • 去逛庙会 → 解锁史实“庙会” ✔
  • 去小吃街 → (解锁目标“逛吃逛吃”) ✔
  • 去猜灯谜 ✔

如果选择“去猜灯谜”,会出现猜灯谜系列,谜底分别是:

  • 对仗
  • 羊入虎口

其实上面的谜底,都在之前关卡的图画里面,可以点击发现的。但是就算填错了,解谜也会继续!但是都填对了才可以解锁“灯笼”

2) 选择:没有区别

  • 屋顶看天灯 ✔
  • 回老宅休息 ✔

本节收集史实: 灯会、庙会

第三章 结伴寻宝

皇十五子

皇十五子答案:

1) 《永琰图》没出现图籍中的元素猜文字:

  • 五时乐图

2) 宣纸画拼合《婴戏图》,结合节气诗线索:

  • 匠作处档房

本节收集史实: 皇贵妃、一幅大画(庆妃永琰像轴)、婴戏图

档房探秘

档房探秘答案:

1) 五言局棋盘,根据档房的画在图籍中棋盘上依次链接棋子,形成不同的汉字图案:

  • 一览众山小

2) 选择:

因为前面已解锁“私刑致死”,但是我们可以先选择“学猫叫”,然后回到关卡“第二章 上元之约”,选择“去小吃街”,解锁目标“逛吃逛吃”,然后再选一次“学猫叫”,回到关卡“第二章 上元之约”,选择“去猜灯谜”,会切换到不同解谜路线。

  • 冲出去 ✔
  • 学猫叫 → 解锁“私刑致死”

本节收集史实:

一路狂奔

一路狂奔答案:

1) 选择:

建议选“左边走”

  • 左边走 ✔
  • 右边走 → 解锁“私刑致死”

2) 选择:

建议选择“进右门”

  • 进左门 → 解锁“私刑致死”
  • 进右门 ✔
  • 径直走 → 解锁“逐出紫禁城”

2) 选择:

建议先选“东一门”,解锁“颠沛流离”,再重回此关卡选择“东二门”。选择“东二门”可以解锁“跑酷大师”成就

  • 东一门 → 解锁“颠沛流离”
  • 东二门 → 解锁“跑酷大师” ✔
  • 东三门 → 解锁“逐出紫禁城”

本节收集史实:

逢凶化吉

本小节无题目

本节收集史实: 李文照、伊兰泰

五行八卦

五行八卦答案:

1) 造办处和内务府格局对比对应的八卦

  • 艮兑离坤震坎

2) 连线八卦图对应的点,穿过关键字:

  • 万春亭前人下

本节收集史实: 八方、五行(阴阳五行)、万春亭

夜探御图

夜探御园答案:

1) 使用有墨迹的宣纸和铜钱对应文字:

  • 铜下墨渍孔中奥秘

2) 继续上题,使用铜钱放在墨迹上,孔中文字:

  • 偏桃花开枝叶繁

3) 选择:选择“躲着…”解锁“失去禾心”

  • 躲着原地不动 ✔
  • 追随禾心下山 → 解锁“满门抄斩”
  • 从侧边绕下山 → 解锁“满门抄斩”

本节收集史实: 一棵侧柏(人字柏)、乾隆通宝

第四章 琳琅宝藏

花叶之谜

花叶之谜答案:

1) 选择:

建议选择“继续在…”

  • 继续在画作库房找 ✔
  • 回启祥宫库房看看 → 解锁“逐出紫禁城”

2) 拼好偏桃之后,偏桃每个部位都有四字提示,顺序是姚文涵说的“初生花、后生叶…”,然后根据四字提示去上方诗里找对应的文字:

  • 泰斯米叶

3) 根据图籍中沙枣树页折叠沙枣花缎带:

  • 寻找友仁

填写答案“寻找友仁”之后可以解锁成就“西洋教士”。

本节收集史实: 前人的画稿(妃嫔画稿)、威弧获鹿(威弧获鹿图卷)、木兰秋狝、平定回部(平淮平回之役)

宫中怪人

宫中怪人答案:

1) 选择:

建议先选择“为学习…”解锁“欺君大罪”,然后重回此关卡。

  • 为增饰万寿图御容 ✔
  • 为学习西洋画技法 → 解锁“欺君大罪”

2) 选择:

  • 满足好奇 ✔
  • 学到画法 ✔
  • 夸赞圣颜 → 解锁“欺君大罪”

3) 选择:

建议选择“去掉脸部阴影”

  • 完全写实来画 ✔
  • 去掉脸部阴影 → 解锁“乾隆赏赐” ✔
  • 画出天子威仪 → 解锁“碌碌无为”

本节收集史实: 潘廷璋

图籍作者

图籍作者答案:

1) 图籍中天体仪上的图案寻找房间什物猜测字谜:

  • 日月双全

2) 御制星晷仪迷宫解谜:

  • 北斗七星

3) 御制简平仪藏字诗解谜:

  • 紫微星内

4) 折地图拼出日月双全字样,得到地点:

  • 雨花阁

本节收集史实: 御制星晷仪、御制简平仪

祸不单行

祸不单行答案:这一节可能需要反复回来多次

1) 选择:

建议先选择“不帮忙”,这样可以解锁成就“忘恩负义”,继续进行可以收集史实“卖地”。第二次回来选择“帮忙”。第三次回来也选择“帮忙”。

  • 帮忙 → 选择此项才能解锁下面的选择 ✔
  • 不帮忙 → 解锁“忘恩负义” ✔

2) 选择:

建议选择“重新做”。

  • 重新做 → 解锁本节下一个选择。 ✔
  • 拖工期 ✔
  • 删掉龙 → 解锁“欺君大罪”

3) 选择:

建议先选“琉璃重新烧”,同时解锁结局“打入大牢”和成就“走投无路”,然后重回本关卡,再选择“我来画一条”,解锁成就“画龙点睛”,收集史实“视学精蕴”,再一次回来再选择“木雕作龙腹”。

  • 我来画一条 → 解锁成就“画龙点睛”,收集史实“视学精蕴”(第一次玩的时候解锁了“欺君大罪”,后来却可以直接过去。) ✔
  • 木雕作龙腹 → 选择此项才有本节下一个选择。 ✔
  • 琉璃重新烧 → 解锁“打入大牢”和成就“走投无路”
  • 4) 选择:

建议选择“涂上颜色”,解锁“贾仁悟的谢礼”。

  • 心存侥幸 → 解锁“欺君大罪”
  • 涂上颜色 → 解锁“贾仁悟的谢礼”

本节收集史实: 卖地(郎世宁卖地)、视学精蕴

五蕴皆空

五蕴皆空答案:

1) 藏头诗:

  • 镂空红纸同花相贴

2) 使用镂空红纸道具

  • CROSS

3) 使用镂空纸蒙在图籍页面:

  • 水落字出

4) 去心经上找对应的字,沾湿(水落字出):

  • 丙子丁亥乙巳己未

5) 在图籍依次找到丙子、丁亥、乙巳、己未页,然后用镂空红纸和三张宣纸依次对应上去:

  • 德行层东

本节收集史实: 佛龛、心经

第五章 将破未破

孤注一掷

孤注一掷答案:

1) 选择:

因为这已经是最后一节常规任务,所以选项比较复杂。

建议先选“我全都要”,解锁“流放边疆”,然后回到第四章祸不单行一节,去帮助贾仁悟,可能要回去多次,等解锁了“画龙点睛”、“贾仁悟的谢礼”等再往下继续。

然后回本关卡再选择“扔下包裹”,可以解锁“视学手稿”,收集史实“嘉庆图”,然后在下面的游戏配图中,可以解锁“黄马褂”,然后继续解谜,最后解锁“名留青史”,到“名留青史”再回来,选择“扔下书籍”,解锁“五十两银子”。

  • 扔下书籍 → 解锁“五十两银子” ✔
  • 扔下颜料 → 解锁“打入大牢”
  • 扔下包裹 ✔
  • 我全都要 → 解锁“流放边疆”

2) 选择:

建议先选择“贿赂胡公公”,然后到下一选择选“皇上的赏赐”解锁“普通画师”再回此关卡,选择“拖延下时间”。

  • 拖延下时间 ✔
  • 贿赂胡公公 → 下一选择解锁“普通画师”

3) 选择:(上一选择选择“贿赂胡公公”才有)

  • 五十两银子 → 解锁“杖刑致死”
  • 皇上的赏赐 → 解锁“普通画师”和成就“平凡是真”

4) 选择:(上一选择选择“拖延下时间”才有)

  • 交出柜中黄布包裹 → 解锁“奏折之危”和成就“怀璧其罪”
  • 交出银两藏起折子 → 解锁“杖刑致死”
  • 告发胡世杰贪污案 → 解锁“颠沛流离”

本节收集史实:

有的人玩到这里已经结束了,解锁隐藏章节的方法就是回到初章十八棵槐配图那里点那只白色的鸟!!!

隐藏章节 多年以后

隐藏关多年以后答案

因为隐藏关解锁后,会引导你回到之前的章节解锁不同的解谜路线,这些答案我们一并都算作隐藏关的,写在下面:

1) 地图宁寿宫的小字

  • 秘密在庚子页

2) 动物和旁边的印章有何联系?

  • 找张二买腰牌

3) 选择:腰牌要价,没有区别

  • 五十两 ✔
  • 五文 ✔
>>>> 重回梦境:第二章 腰牌买卖

这次穿越回去主要是收集“腰牌”

1) 选择:是否买腰牌,选择买

  • 买 ✔
  • 不买 → 不能选,会跳过隐藏剧情

2) 选择:

  • 等万寿盛宴当天再说 ✔
  • 现在就去慈宁宫转转 → 不建议选

3) 选择:上一选择选了“现在就去慈宁宫转转”

  • 找根撬棍开门 → “杖刑致死”
  • 还是别冒险了 ✔

4) 选择:

  • 回到启祥宫等机会 → “碌碌无为”
  • 去慈宁门伺机而动 ✔
  • 前往宁寿宫探究竟 ✔

这之后要继续按照之前的剧情继续往下走,到“嘉祉初遇”。

>>>> 重回梦境:第三章 嘉祉初遇

选择:在禾心说自己是宁寿宫宫女的时候选择“揭穿她”,可解锁物品收集“香包”。然后可以回到隐藏章节继续往下进行。

  • 还是相信她 → 不能选,会跳过隐藏剧情
  • 揭穿她 ✔

< <<< 返回隐藏章节 梦醒时分

1) 纸条上弯曲的字迹对照地图

  • 武英门早赴约有新发现

然后下拉进入下一章回到第三章

>>>> 重回梦境:第三章 嘉祉初遇

继续剧情一直到“上元之约”一节。

1) 选择:要提前去!

  • 按时去武英门 → 不能选,会跳过隐藏剧情
  • 提前半个时辰 ✔

选择了“提前半个时辰”就可以继续收集史料“神鸟(紫禁城乌鸦)”,看到有乌鸦的图,不知道怎么继续了,提示说“要是没有这烦人的背景音就好了”,去到系统设置,把背景音乐调小,就可以解锁物品收集“乌鸦羽毛”。再继续可以解锁史实收集“御花园”。

继续剧情。

在屋顶看天灯之后,可以收集史实“和硕和恪公主”。继续到下一章,可以解锁“纸团”并回到隐藏章节。

< <<< 返回隐藏章节 愁肠百结

1) 此时他想到一个人…

  • 贾仁悟

继续下一章。

>>>> 重回梦境:第四章 皇十五子(这里不可上滑)

继续剧情一直到“五行八卦”一节作答“万春亭前人下”。

1) 选择:贾仁悟问他所问何事?好像没有区别。

  • 问卜算卦的事 ✔
  • 问万春亭的事 ✔

继续之前的常规剧情。直到第四章“祸不单行”一节,帮助贾仁悟,一定要选择“帮忙”!一定要选择“我来画一条”!才能解锁新剧情。

< <<< 返回隐藏章节 梦里梦外

1) 这画里画外又是何意……

  • 探宁寿宫

2) 在一页书纸上寻到与禾心的踪迹……

  • 谜状元装侍卫

3) 折纸

  • 桃源仙居

此时解锁“柳暗花明”,同时达成成就“再无遗憾”。

众筹专属

《如意琳琅图籍》如何解锁众筹专属章节?

解锁众筹专属章节,需要用到众筹专属的赠品,小袋子里面有徽章、书签、胶带、明信片,而明信片的宫墙上印有“五六工尺上”,这五个字是敲击云锣的顺序,在“第一章 万寿盛宴 殿前观礼”一节,找到图中云锣,按照上面五字顺序敲击即可解锁。云锣的位置如下图:

1) 选择,没有区别

  • 追 ✔
  • 拿石头丢它 ✔

2) 选择,是否进入,没有区别

  • 果断进入 ✔
  • 犹疑不定 ✔

3) 求同弃异

  • 门朝大海

4) 晦涩之语到底用意为何?

  • 相思无用唯别而已

到此解锁结局“驾鹤西去”,剧情全部结束。

目标达成

上面攻略都已经提及,可以使用 Ctrl + F 搜索本网页。

结局解锁

遇到选择的时候,选择不同的选项可能会走向不同的结局。各个结局的解锁已经在上面攻略中的各个选择中标记出来了。

史实收集

史实收集非常简单,只需要在解谜过程中,随时点击带有下划线的文字即可。点开之后不要返回太快,以免收集无效。

物品收集

黄马褂:第五章 孤注一掷 选择“扔下包裹”之后,再下面的图中拉到左侧找到。

香包:

腰牌:

绿狮子:第四章 宫中怪人 第三个选择中选“去掉脸部阴”

灯笼:第二章 上元之约 连续猜对三个灯谜

八卦镜:第四章 祸不单行 帮助了贾仁悟木雕完成九龙壁。

视学手稿:第五章 孤注一掷 选择“扔下包裹”

五十两银子:第五章 孤注一掷 选择“扔下书籍”

太监帽子:

纸团:

猫:第二章 礼乐度量 答案“太和殿前嘉量”之后的图片拉到最右边,猫在右下角

微信群二维码:

二维码过期可以点击此处添加微信交流。

如何设置浏览器允许自动播放?

从2017年6月份开始,一些浏览器陆续升级,禁止网页中的音频自动播放,防止网页自动播放音视频对用户造成的干扰。但是这也给一些需要自动播放的网站带来了不便。

下面我们将介绍如何在 Chrome 和 Safari 中设置,允许网页中的音视频自动播放。

Chrome

如下图,在浏览器地址栏输入“chrome://flags”,然后回车。打开配置界面搜索“autoplay”,找到“Autoplay policy”,将下拉框选为第二项“No user gesture is required.”,点击右下角“RELAUNCH NOW”重启即可。

Safari

1 点击左上角菜单栏“Safari浏览器”找到“此网站的设置…”。

2 在弹出框的“自动播放”一项,选择“允许全部自动播放”。

Google Web 更新(2017年6月):DOMException The play() request was interrupted

英文原文:DOMException: The play() request was interrupted


你是不是刚刚在Chrome浏览器的控制台Console里遇到了这个未预料的媒体错误?

Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

或者

Uncaught (in promise) DOMException: The play() request was interrupted by a new load request.

不要怕, 下面就来解释错误的原因和解决方法。

错误原因

下面的JavaScript代码再现了你遇到的“Uncaught (in promise)”错误:

错误代码:

<video id="video" preload="none" src="https://example.com/file.mp4"></video>

<script>
  video.play(); // <-- This is asynchronous!
  video.pause();
</script>

上面代码运行后在Chrome控制台的错误信息:

Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

由于标签属性 preload=”none” 视频没有加载,在执行了 video.play() 之后,视频不一定会立即播放。

而且,从 Chrome 50 开始, <video>或<audio>元素调用play() 方法将会返回一个Promise,一个异步返回单一结果的函数。如果播放成功执行,Promise 会执行(fulfilled),同时会触发媒体的playing事件。如果播放失败,Promise会被拒绝执行,并且返回错误信息阐述失败原因。

这个过程中发生了这些事情:

  1. video.play() 试图异步加载视频内容。
  2. video.pause() 中断视频加载,因为并没有真正的准备好播放。
  3. video.play() 显式地拒绝异步加载。

这时候因为我们没有在代码里对视频播放的Promise进行处理,所以Chrome控制台抛出一个错误。

提示:唤起 video.pause() 并不是中断视频的唯一途径。你可以用 video.load()video.src=” 完完全全地重置视频的播放状态,包括视频缓冲。

解决方法

现在我们了解了问题的根源,然后来看看如何解决。

首先,不要恣意的去播放网页中的媒体文件。查看 play 方法返回的Promise是否被拒绝执行。如果播放没有真正的开始,Promise不会有任何值,也不会往下执行,下面示例中 then() 里面的代码也不会执行。

示例:自动播放(Autoplay)

<video id="video" preload="none" src="https://example.com/file.mp4"></video>

<script>
  // Show loading animation.
  var playPromise = video.play();

  if (playPromise !== undefined) {
    playPromise.then(_ => {
      // Automatic playback started!
      // Show playing UI.
    })
    .catch(error => {
      // Auto-play was prevented
      // Show paused UI.
    });
  }
</script>

示例:播放(Play)和停止(Pause)

<video id="video" preload="none" src="https://example.com/file.mp4"></video>

<script>
  // Show loading animation.
  var playPromise = video.play();

  if (playPromise !== undefined) {
    playPromise.then(_ => {
      // Automatic playback started!
      // Show playing UI.
      // We can now safely pause video...
      video.pause();
    })
    .catch(error => {
      // Auto-play was prevented
      // Show paused UI.
    });
  }
</script>

这个示例很棒,你以后是不是知道如何用 video.play() 来播放视频了?

告诉你一个秘密,不需要 video.play(),你可以用 video.load()。像这样:

示例:获取(Fetch)和播放(Play)

<video id="video"></video>
<button id="button"></button>

<script>
  button.addEventListener('click', onButtonClick);

  function onButtonClick() {
    // This will allow us to play video later...
    video.load();
    fetchVideoAndPlay();
  }

  function fetchVideoAndPlay() {
    fetch('https://example.com/file.mp4')
    .then(response => response.blob())
    .then(blob => {
      video.srcObject = blob;
      return video.play();
    })
    .then(_ => {
      // Video playback started ;)
    })
    .catch(e => {
      // Video playback failed ;(
    })
  }
</script>

播放的promise支持

目前,在Chrome, Firefox, Opera, and Safari浏览器中 HTMLMediaElement.play() 可以返回promise。Edge还在研发中。

警告

包含在<video>里面的<source> 会让 play() 的 promise 永远不会拒绝

比如<video src=”not-existing-video.mp4″>, 如果视频不存在,play() promise 会拒绝执行. 而<video><source src=”not-existing-video.mp4″ type=’video/mp4′></video>中 play() promise 不会拒绝。这种情况只会在没有可用的资源文件时触发。

Chromium Bug


TOP