精华内容
下载资源
问答
  • 时间插件,兼容性强

    2018-11-13 15:07:36
    使用时注意jar的引用,具体的我忘记了,太久的文件了,现在拿出来分享给大家,适合不是太爱琢磨的人使用,
  • 前任老板叫陈一舟,他现任老板叫张朝阳,他投资叫马云,他对手一个叫李彦宏、另一个叫周鸿祎。没有可以提供一张既成图纸指引他们该怎么把一栋楼盖起来。这包括该找什么样工人,选择什么样建筑...

    他的前任老板叫陈一舟,他的现任老板叫张朝阳,他的投资人叫马云,他的对手一个叫李彦宏、另一个叫周鸿祎。没有人可以提供一张既成的图纸指引他们该怎么把一栋楼盖起来。这包括该找什么样的工人,选择什么样的建筑材料。他们不懂更没意识到,这栋楼盖好了还需要有好的装修设计,以及把它卖出去。

    \

    “我记得乔布斯说过一句话,大意是要知道自己还是处于一种饥渴和无知里。”34岁的王小川,在搜狐已经工作了13年。他曾经的一些同事都惊讶,他在搜狐能待这么长时间。而王小川一直在一种“饥渴”感里走了过来。

    2003年王小川开始做搜狗搜索引擎,两年前搜狗从母体分拆出来,他成为了这家相对独立的公司的CEO。经过10年历练,搜狗在中国芜杂的互联网版图上浮出水面,并成为国内用户数排名第四(3.7亿)的互联网公司。在搜索市场,它排名第二。

    王小川少年得志,1993年获全国数学联赛一等奖,被保送进成都七中;念高三的时候,获国际奥林匹克信息学竞赛金牌,被保送至清华大学计算机系。“聪明”、“相当有韧性”,这是曾经和他共事过的人对他极普遍的评价。

    当王小川带领一批极客做搜索引擎的时候,搜狐并不具备做这件事的技术基因。并且,“全世界能做这事的国家,比做核弹的还少。”王小川说。研发团队以技术为驱动,而搜狐是一家媒体属性的公司,彼此不兼容。不少人质疑这件事情难干成。产品运营后,它面对的是已经上市的强大对手,而搜狗团队只是搜狐里的一个部门,为什么它没有被大象的阴影遮蔽掉?

    “把产品做出来,和运营起来的难度相比简直不是一个量级。”一位初期便待在这个研发团队,与搜狗一同走过来的内部人士感慨。极客容易陷入单一的技术性思维的路径,但王小川很早就“打碎”了自己,首先改变了自己的格局,从技术驱动开始,走向产品,再到管理的线路。除了“坚韧”,熟悉他的人,对他另一个最为普遍的评价是:“这是一个兼容性很强的人。”

    一位投资人对《创业邦》说:“很多人总讲,我也能做搜索,但你发现,没做两天他就玩不下去了。”在新一拨的互联网创业者里面,像王小川这样技术出身的人非常稀少,甚至有投资人评价为“几乎没有”。而作为极客,肯放弃自己在专业领域里的骄傲感,懂产品和拥有管理能力,这样的人就更少。

    2012年11月上旬,搜狐发布了第三季度的财报,公开数据显示搜狗实现营收3700万美元,同比大涨102%、季度环比增长23%;CNZZ数据,搜狗搜索的流量份额从6月份的7.4%增长到了9月份的8%。

    在这些数据后面,搜狗达到了“规模”,但它依然是一家创业公司。因此,在既定战略实践、产品价值释放的过程里,王小川说:“我们处在一个转型的阶段。”在大象的阴影里,搜狗逆流而上,没有遵循所在领域普世的游戏规则。他说:“你看,创新还是可能的。我们是1300名员工,而百度是2万。”

    王小川1978年出生,27岁晋升为搜狐副总裁,是5位副总裁里最年轻的一位。曾经有过一段短暂的时间,他在搜狐的地位一落千丈。他为什么没有离开?

    大早与晚集

    2000年搜狐收购了陈一舟、周云帆与杨宁创办的ChinaRen。王小川在这一年进入搜狐。彼时他已在ChinaRen以实习生的身份工作了一年,还没念完清华大学计算机系的本科,但在这个平台上他做过内容发布系统,也做过悟空搜索引擎等多款产品。点点网的创始人许朝军与他既是同学,又曾是同事。“仅我们计算机系就有十几号人在ChinaRen兼职。”许说。

    一年时间,他证明了自己的技术才华。一位与他共事过的朋友告诉我,那时候王小川已是这个团队里的“技术大拿”。

    直至2003年,王小川在搜狐组建主导开发搜狗搜索引擎的研发中心时,也仍然是一名学生。当时,他在清华大学计算机系高性能所念研究生。不仅如此,整个研发中心里的20来人大多是清华大学计算机系还在念书的学生,有12人出自奥赛集训班。“这些人都是我挨家挨户找来的。”用一句通俗的话来说,这20来人都是天之骄子。这支团队也很快证明了他们的才能:11个月后搜狗搜索引擎发布。

    这并非是一个从表面上看,多么不可能实现的研发速度。在那个阶段,某门户网站用一年时间也做出了搜索引擎。“但他们是一支100多人的团队,封闭式研发。而搜狗在2004年,最多的时候也就30来人——他们穿梭于校园与公司之间。”一位内部人士说。

    平地盖楼。没有人可以提供一张既成的图纸指引他们该怎么把一栋楼盖起来。这包括该找什么样的工人,选择什么样的建筑材料。他们不懂更没意识到,这栋楼盖好了还需要有好的装修设计,以及把它卖出去。在ChinaRen,王小川虽然做过搜索引擎,但那只是一个由3、5几个人组成的小项目。

    这些学生内心骄傲,血气方刚,带着书生气。年轻人身上所具有的那种青春特质,在他们身上不会体现得更少。这不是太奇怪的事情。但一时,他们成为了搜狐的异类。这家门户网站媒体属性鲜明,而研发中心的基因却以技术为显要。不同的思维路径表现在工作方式上,就会有不可避免的碰撞。为什么他们会领着比自己高的薪水?并且,他们还是搜狐唯一实行弹性工作制的部门。不但如此,这个部门对于硬件采购与运营成本的要求还蛮大,最直观的表现是,为什么一个人要用两台电脑办公呢?

    很多人,都没觉得他们能把搜索这件事做出来。

    在这个技术力量薄弱的网站,搜狗搜索引擎成为搜狐首个上线后未崩溃的大型技术系统。但产品发布后,依然令搜狐里的一些人十分不解:为什么用自家产品搜索新闻,新浪会排名在搜狐之前?此外,还会随手搜到一大把“敏感词”?由于对技术缺乏了解,甚至会有人提出逾越了技术本身所能实现的要求。

    搜狐收购ChinaRen吸引它的是社区、SNS,而不是技术力量。搜狐接二连三推出产品,接二连三在第一天被“挂掉”。2004年张朝阳在公司内部提出了以技术为驱动的概念。有大概半年左右的时间,张朝阳几乎每周都会召集包括王小川在内的技术骨干去东方君悦酒店座谈。搜狐下定决心做一次转型。

    在东方君悦的座谈,王小川开始留意张朝阳作为老板想问题的方式。王小川在这个阶段开始了自己的转型——跳出一个极客以技术为驱动的思维框架,考虑“如何通过技术去实现服务。”他对产品、市场开始变得敏感。这成为了他后来的一条发展路径,从技术导向,到产品驱动,直至如何通过管理去有效地保证产品的品质,实现一个商业模式的价值。在搜狐他面临到的压力,使他感受到这不单单只是一个技术开发的事。

    2004年,团队里的一些成员处在一个面临不同抉择学业结束的阶段。这年,这个团队里的人走掉了差不多一半。有些人选择了出国或回校继续深造,也有人去了其它公司。

    2003年至2004年,北京联想桥路北的青云当代大厦。20来人,在这栋楼里每天要工作到凌晨以后。他们最常有的“休闲”方式便是下班后,在王小川的召集下,骑着自行车,在北京午夜的大街小巷闲逛。2004年一些人选择了离开。因为这些技术出身的人没有长时间去运营一个大产品的经历,所以搜索引擎发布后处在一个一时找不到清晰目标的状态:“产品做出来后,有点像学生,上完课、考完试大家就散了。”一位内部人士说道。

    王小川说,“参加奥赛的人,过早地把自己装满了,以为还能做出很多很多这样的事情来。我当时在这些人里面技术最顶尖,但我觉得自己在商业等其它系统里面,还有很多要提升的空间。”他表达了一个“无知论”这一个观点,在他聊及到一位互联网大佬的时候,也表达了一个类似的观点,“这个世界上没有一个绝对好用的东西,人的认知是有限的。用有限的认知掌控一个更大的世界这做不到。所以最后的问题是,人需要一种信仰,或者宗教作为支撑。”他不喜欢那种绝对的“到了头的冷静和睿智。”

    边缘人的生存之道

    2004年后,王小川所面临的各种抉择并不见少。2008年他不再负责搜索业务,而是被抽离到做桌面端。在那段时间李彦宏、陈天桥等这样的大佬也来挖过他。

    \

    王小川说,2000年进入搜狐后,他手里的股票如果折现的话就有“大概有1000来万。”他表达的一个意思是,就个人的所谓收益来看没压力了,表面上看好像也完全可以放弃这件一时吃力不讨好的事情,“但人不能光孤立地看你自己,自己去隔离一件正在做的事。如果公司做挂了,那么多人怎么去讨老婆,买房子。而且很多事你只有做成了,才能代表这个价值达到了,否则就是一个很轻浮的想法。”

    王小川的朋友、启明创投合伙人胡斌,在ChinaRen以及搜狐都曾和他共事过。这位留着长头发的风险投资人,念大学的时候喜欢听摇滚乐,做VC后,业余时间组建了一支摇滚乐队。他笑着说10年以前,他觉得自己是一个够有棱角的人了,“但小川在当时比我更明显。”两个很有棱角的人,常为了公事争得面红耳赤,但最后他和王小川成为了好友。搜狐内部竞争挺激烈,胡斌一度以为王小川在搜狐不可能待太久:“这10年,可以想象他在里面经历了非常多的东西。”搜狗的团队曾被大公司挖过角,“但更多的人选择了留下,从研发团队开始做,一直到今天搜狗从搜狐分拆出来。看得出,他是有人格魅力的。”

    做搜狗,王小川以“各种曲折”形容过去的经历。在内部以及外部所遇到的挫折,他说:“那就是一个伤疤。”2005年百度上市,立即拉开了与搜狗的距离。搜狗在当时还需面对另一只大象谷歌对这个市场的蚕食。很多人质疑,他凭借什么力气在这个市场上去找到自己的地盘呢?在这样的竞争格局里,王小川说:“当别人把门关得差不多只留条缝的时候,如果你自己还把那个门缝关上就相当于自己不给自己希望。”

    通过输入法导入浏览器,再通过浏览器带动搜索的流量,这是搜狗“三级火箭”的产品逻辑和所延伸出来的商业模式。现在并不会让人觉得不可思议,但从2006年搜狗推出输入法,到2009年推出浏览器,这个现在被视之为创新之举、润物细无声的过程,并不被搜狐内部完全理解。甚至有一种声音认为,王小川是因为搜索做不下去了才开始做浏览器。

    到2008年,搜狗做搜索已经5年了。表面上,它看不出有多大动静。况且在两头大象的阴影边,它还被它们庞大的身躯所笼罩。前景令人堪忧。输入法推出,在此期间验证了它的成功。2008年它的用户量占据了40%的份额。次年70%。现在,这个数字为86.3%。它给关心搜狗做搜索此事的人以希望,但一时又无法让人不忧虑。用户来了,可是它并没有变现为一种直接的商业回报。而王小川与团队,一开始就将此定位为做搜索这件事,其商业模式里的一环。当大象无法直接撼动的时候,就用曲径通幽的方式,在大象的身旁带来它在搜索市场的流量,而不是通过它在短期内带来多大的商业效益。

    搜狗生存在搜狐的体制内,人员招聘、薪酬福利、销售等都在搜狐的体系里,这使得它在做很多事情时,运作起来效率降低,不时会和其它部门发生冲突。王小川需要去平衡这里面的各种关系。搜狗输入法还是给团队打了一支强心剂。搜狗当时的状态,“可能运营了一段时间就没了,也不是没有可能的事。”一位员工说。

    搜狗员工一度士气低落。到2008年这5年时间,搜索引擎这件事能不能做好,有的时候他们心里也在打鼓。对于多数互联网产品来说,5年的时间不算短,不能有力地证明它的成效。“很容易被人认为,那是你有问题。”前搜狗员工说,做搜索这件事有些特殊,从产品到渠道,到通过它来赚钱,需要很长的时间,“它不像今天,很多是公开技术,到外面挖一批人来,就可以立马做这件事。”

    在搜狐内外遇到的各种压力,王小川一直不愿意向团队传递。一两年前,他在与朋友聊天的时候说:“想要大家有一个好的环境,安静地做把事情做出来。”

    不会飞镖暗器是一种幸运

    探索引擎是搜狗正在开发的新一代搜索引擎。“这就像搜狗的输入法,当你敲一个词的时候,不仅仅是最后对应这个词汇,它能给你更多的帮助。而当你用浏览器敲链接的时候,也不仅仅是看到那个页面,我有意图给你更多的帮助,探索互联网更多感兴趣的东西。”王小川向《创业邦》说着他们在搜索引擎上最新在做的事。他们试图颠覆搜索引擎“搜索框+关键词”的传统模式,把搜索技术与浏览器结合起来,以此去改变搜索市场的格局。“就是从工具向服务迈进,否则输入法和浏览器都是工具。”王小川说,搜狗正在做这样的一个转型,以此去寻找自己的定位,“在前有百度后有360的夹击战中,找自己的生存机会”。

    PC端依然是搜狗想要做活的盘子。王小川觉得搜索市场在无线领域“没有大家想的那么快”。他描述了一个现象,诸多门户网站在2000年就上市了,相比之下,百度上市的时间有些晚:“因为,只有当网站成熟了,有很多网站能赚钱之后,搜索才能赚钱,因为搜索是它们生态系统里的一部分。在无线领域现在除了游戏赚钱,还有什么呢?”2012年,搜索进入了百度、搜狗、360的三国战时代。王小川一直想通过技术创新去改变搜狗在行业内的竞争格局。“在一个复杂的格局里,我们可以选择花10倍的力气,寻求在产品上的更大突破。”

    王小川说:“搜狗还是偏理想主义。这可能来自一些人的某些共性,看不惯野蛮的东西。说得好听点叫不接地气,说难听点这叫学院派。在今天,这种价值观,我反省过其实是一种负担。最后我自己的思考是,认了。跟打仗一样,别人使飞镖暗器,这玩意我不玩会吃亏,但这个时候我觉得有机会,再往后几年、十年(去抵抗)因为我觉得这个文明会在的。所以我现在更愿意阳光地看待这种事情。”

    前段时间他在看一本写犹太民族历史的书。他讲述这本书给自己带来的感受是,这个民族里的人一直被武装力量挤来挤去,没有武器也不反抗,没有自己的祖国,但并不是随波逐流:“他们现在在对美国整个经济、政治的影响力方面都有不可小看的话语权。包括美国娱乐产业的明星公司,像7大唱片全都是犹太人开的——就是说,我受到压迫了,我能把我们的智慧、对文明的追求在其它地方绽放成新的力量。”

    郭奇是王小川在成都七中高中时的同学,也是他在清华念本科及研究生时的同学。从ChinaRen、搜狐到后来的搜狗,他们同事至今,是相交了20年的老朋友。

    在成都七中的实验班,王小川和郭奇都是被重点培养的学生。郭奇说,有一两年时间,学校为此给他们分配了两间屋子。在一个阴暗的阁楼上,屋子里摆着两台电脑,但是没有老师给他们出各类题目,也没有人告诉他们该怎么做。那段时间,他们自己找来了各式各样的题目。“(我们)绞尽脑汁去寻找一些很奇怪的东西。我们特别喜欢研究一些新的算法。我觉得搜狗有一部分基因(的形成),应该跟当时在阁楼上的那段学习环境也有关系。就是说,在那种规则的外面,非常有创意地去解决问题。”

    郭奇说王小川真正想要做的事还是创造。他记得大概一年多前,有一天王小川找他兴致勃勃地聊了半天人机对接、3D打印、语音交互的话题。郭奇想表达的意思是“他本身是一个有想象力的人,很想让搜狗保持一个具有创造力的文化”。

    王小川的父亲曾是一位工程师,而母亲是一位中学物理老师。王小川说,他们对自己都有很大的影响:“我爸是老黄牛般的共产党员。”他把共产党员分成两类,一类是领导干部,另一类就是像他父亲一样待在基层,对自己要求特别高,家庭责任感强。“他为人特别正直,就算是我妈妈玩下麻将也会告到领导那里去。”

    在王小川的心里,父亲平和、善良,而母亲对他的要求特别多。“你不但成绩得好,还得能做家务,就是说在什么方面她都希望我要优秀。我记得有次跟小朋友出去玩,被妈妈骂了一顿。她批评我,(是因为)玩的主意是别人出的,她希望我有独立的主见。”

    在说到搜狗的时候,他用了“正直”这个词作为这家公司一直在坚持的价值观。谈到搜狗曾在母体内生存的经历,王小川说与张朝阳过去在工作上并不是没有过争论,他归纳为这不是理念层面上发生的冲突。他同样用“正直”这个词,评价这位相交、共事了10年的老板:“你看,搜狐收购一系列的公司都特别规矩。Charles(张朝阳)做搜狐不是一个追求快速成功的人。”

    \

    From:http://magazine.cyzone.cn/articles/201301/2821.html

    展开全文
  • 关于CSS,我相信刚入门或者入门没有多久的人都会觉得,CSS太难兼容各个浏览器,兼容了IE6不兼容IE7,兼容了IE7的话IE6又有问题,还有IE8,IE9,FirFox,Chrome等等浏览器。 或许你会从网上去找兼容各种浏览器的不同...

    关于CSS,我相信刚入门或者入门没有多久的人都会觉得,CSS太难兼容各个浏览器,兼容了IE6不兼容IE7,兼容了IE7的话IE6又有问题,还有IE8,IE9,FirFox,Chrome等等浏览器

    或许你会从网上去找兼容各种浏览器的不同方法,比如所说的hackbox,这是利用不同浏览器对于一些特别的代码的认可性。比如:
    .class{margin-left:10px;}
    *html  .class{ margin-left:20px;}

    这样写的话class左边外间距就是10px,那么*html只能在IE6下面被识别,其他浏览器是不认识他,那么其他浏览器依然是左边外间距10px, 然而在IE6下面则成了20px,这个和程序一样,代码从上往下执行,下面的覆盖上面的。除了这样的还有其他的各种浏览器的不同标签,还有<!– !important –>等等。这样做也太繁琐了,而且终究不是正道,或许我们会想有没有一种代码方式,可以不用做特殊处理就兼容各种浏览器呢?有。

    CSS代码写出来为什么不会兼容各种浏览器?你 去网上搜索一下,主要原因还是各种浏览器对于margin,以及padding还有float等几种个别的属性不兼容而已,所以我们尽量的要处理好这几种 属性,或者可以说是避免使用margin以及padding。你可能会问,不使用margin和padding的话能用CSS写出合适的页面吗?内外间距 怎么办?怎么处理?

    我们拿一个很简单的例子来说吧,
    <ul>
    <li></li>
    <li></li>
    </ul>
    我相信以上这四行代码在写CSS的时候再常见不过了,而这段代码就这么直接产生的效果肯定不是我们想要的,我们要给它调颜色,间距等等,然而调间距就涉及 到了margin和padding,然后涉及到这两个东西的时候又会造成各个浏览器显示的内容不一样,那么,我们可不可以换一种方式来达到我们要的效果 呢?当然可以,我们直接给<li>标签设置固定的高度,宽度,以及行高,这样也可以达到我们想要的效果,你不妨试一下。

    至于float造成的变形,也很好办,比如一行三个栏目,不要想着前面两个栏目float:left;第三个就不用了,不要珍惜那一句代码,第三个也要写上,这一行布局完之后记得清除浮动,clear:clearboth;然后再开始布局下一行。

    还有比较重要的一点就是,浏览器对于CSS的各种属性的默认值是不一样的,所以在刚开始一定要定义全局代码,清除margin,padding等等,这样不仅仅对于兼容浏览器有帮助,也对于你能写出高效代码有帮助。

    CSS代码布局要严谨,每个DIV宽和高(有时候需要auto)是多少px就是px,一定要定义清楚,因为各个浏览器的默认值也不一样,还有就是为 每个div都用上overflow:hedden;清楚溢出,这样即使是有些地方使用了paddding,也不对你的整体布局造成明显的影响。

    最后,还是需要多多尝试,多多思考,多多总结。以上内容页是我自己慢慢摸索出来的。




    本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2011/06/28/2092116.html,如需转载请自行联系原作者

    展开全文
  • 如发现博客有错误,请及时提出以免误导其他,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ Attributes MediaElement supports the following video/audio tag attributes: ...
    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

    Attributes

    MediaElement supports the following video/audio tag attributes:

    AttributeDescription
    autoplay Specifies that the video will start playing as soon as it is ready
    class Specifies one or more class names for an element (refers to a class in a style sheet)
    controls Specifies that video controls should be displayed (such as a play/pause button etc).
    id Specifies a unique id for an element; if not specified, the plugin will create one automatically
    height Sets the height of the video player in pixels; you can also indicate percentages
    loop Specifies that the video will start over again, every time it is finished
    muted Specifies that the audio output of the video should be muted
    poster Specifies an image to be shown while the video is downloading, or until the user hits the play button. Generally, a PNG or JPEG image. If not specified, the player will use the background color specified in the style sheet
    preload Specifies if and how the author thinks the video should be loaded when the page loads; possible values: auto, metadata or none (recommended)
    src Specifies the URL of the video file; this value can also be indicated with source tags (refer to the Multiple Codecs section for more information)
    style Specifies an inline CSS style for an element
    tabindex Specifies the tabbing order of an element. To avoid the keyboard to focus on this element, use -1; otherwise, 0
    title Specifies extra information about an element
    width Sets the width of the video player in pixels; you can also indicate percentages

    The following markup displays all the attributes listed above for more clarity:

    <video autoplay controls class="player" id="player1" height="360"
    	width="100%" loop muted poster="/path/to/poster.jpg"
    	preload="none" src="/path/to/media.mp4"
    	style="max-width: 100%" tabindex="0" title="MediaElement">
    </video>

     

    Configuration

     

    Standalone

    As a standalone library, MediaElement.js can be configured using the following settings.

    ParameterTypeDefaultDescription
    renderers array [] List of the renderers to use
    fakeNodeName string mediaelementwrapper Name of MediaElement container
    pluginPath string build/ Path where Flash shims are located
    shimScriptAccess string sameDomain Flag in <object> and <embed> to determine whether to use local or CDN files. Possible values: always (CDN version) or sameDomain (local files)
    success callback   Action(s) that will be executed as soon as the source is loaded; passes 2 arguments: media (the wrapper that mimics all the native events/properties/methods for all renderers) and node (the original HTML video, audio or iframe tag where the media was loaded originally; if html5 is being used, media and node are the basically the same)
    error callback   Action(s) that will be executed if source doesn't load for any reason. Passes same arguments as success
    dailymotion object   See Documentation
    dash object   Accepts debug, drm (object to load protected/licensed streaming; read here for more information) and path parameters to indicate dash.js URL/local path
    facebook object   See Documentation (and a custom lang parameter to indicate the FB SDK language)
    flv object   See Documentation (and a custom path parameter to indicate where to load library)
    hls object   See Documentation (and a custom path parameter to indicate where to load library)
    youtube object   See Documentation; also, a custom nocookie parameter to switch to YouTube's no-cookie URL and imageQuality parameter if user decides to use Image API to load a YouTube poster based on YouTube video ID (possible values: default, hqdefault, mqdefault, sddefault and maxresdefault)

    Notes

    1. Vimeo and Soundcloud don't need any configuration for now since they are pretty straight forward.
    2. To use DRM with M(PEG)-DASH, make sure CORS are configured correctly, and also your site MUST be using SSL.
    3. Both success and error will be available for both MediaElement and MediaElementPlayer; however, when using MediaElementPlayer, a third argument is passed: instance, which gives access to the methods associated to the MediaElementPlayer class.
    4. When using MediaElementPlayer, error arguments will be: error (the details on the error event), media and node.

     

    MediaElementPlayer

    Including the above, MediaElementPlayer object allows the following extra configuration elements.

    ParameterTypeDefaultDescription
    classPrefix string mejs__ Class prefix for player elements
    poster string (empty) Poster URL that overrides poster attribute
    showPosterWhenEnded boolean false When the video is ended, show the poster
    showPosterWhenPaused boolean false When the video is paused, show the poster
    defaultVideoWidth number 480 Default width if the <video> width is not specified
    defaultVideoHeight number 270 Default height if the <video> height is not specified
    videoWidth number -1 If set, overrides <video> width
    videoHeight number -1 If set, overrides <video> height
    defaultAudioWidth number 400 Default width for audio player if the user doesn't specify
    defaultAudioHeight number 30 Default height for audio player if the user doesn't specify
    defaultSeekBackwardInterval function   Default amount to move back when back key is pressed. Default callback is represented like: function(media) {return (media.duration * 0.05);}
    defaultSeekForwardInterval function   Default amount to move forward when forward key is pressed. Default callback is represented like: function(media) {return (media.duration * 0.05);}
    setDimensions boolean true Set dimensions via JS instead of CSS
    audioWidth number -1 Width of audio player
    audioHeight number -1 Height of audio player
    startVolume number 0.8 Initial volume when the player starts (overrided by user cookie); represented with float values
    loop boolean false Whether to loop or not media
    autoRewind boolean true Rewind to beginning when media ends
    enableAutosize boolean true Resize to media dimensions
    timeFormat string (empty) Time format to use. Default: 'mm:ss'. Supported units: h: hour, m: minute, s: second and f: frame count. If use 2 letters, 2 digits will be displayed (hh:mm:ss)
    alwaysShowHours boolean false Force the hour marker (##:00:00)
    showTimecodeFrameCount boolean false Whether to show frame count in timecode (##:00:00:00)
    framesPerSecond number 25 Used when showTimecodeFrameCount is set to true
    autosizeProgress boolean true Automatically calculate the width of the progress bar based on the sizes of other elements
    alwaysShowControls boolean false Hide controls when playing and mouse is not over the video
    hideVideoControlsOnLoad boolean false Display the video control when media is loading
    hideVideoControlsOnPause boolean false Display the video controls when media is paused
    clickToPlayPause boolean true Enable click video element to toggle play/pause
    controlsTimeoutDefault number 1500 Time in ms to hide controls
    controlsTimeoutMouseEnter number 2500 Time in ms to trigger the timer when mouse moves
    controlsTimeoutMouseLeave number 1000 Time in ms to trigger the timer when mouse leaves
    iPadUseNativeControls boolean false Force iPad's native controls
    iPhoneUseNativeControls boolean false Force iPhone's native controls
    AndroidUseNativeControls boolean false Force Android's native controls
    features array [...] List of features/plugin to use in the player; some will be included in the control bar (by default IN STRICT ORDER: playpause, current, progress, duration, tracks, volume, fullscreen)
    useDefaultControls boolean false If set to true, all the default control elements listed in features above will be used, and the features will append any other plugins indicated in features. This approach is used mostly when adding more plugins WITHOUT modifying the elements in the control bar in any capacity
    isVideo boolean true Only for dynamic purposes
    stretching string auto Stretching modes for video player. If auto is set, player will try to find the max-width and max-height CSS styles to turn it into responsive mode; otherwise, will set the dimensions specified in the tag (same as setting this option as none). The fill mode will try to use the available space to make the video fit and, when window is resized, it will crop the dimensions to center it according to the available space.
    enableKeyboard boolean true Turns keyboard support on and off for this instance
    pauseOtherPlayers boolean true When focused player starts, it will pause other players
    secondsDecimalLength number 0 Number of decimal places to show if frames are shown
    customError string/callback null If error happens, set up customized HTML message through a string or a function. The function has 2 parameters: media (the wrapper that mimics all the native events/properties/methods for all renderers) and node (the original HTML video, audio or iframe tag where the media was loaded originally)
    keyActions array [...] Keyboard actions to trigger different actions. Accepts array of objects in format: {keys: [1,2,3...], action: function(player, media) { ... }}. To see the entire list, please check /src/js/mediaelementplayer-player.js
    duration number -1 Start point to detect changes on media time duration
    timeAndDurationSeparator string <span> &#124; </span> Separator between the current time and the total duration of media being played
    hideVolumeOnTouchDevices boolean true Touch devices (specially mobile devices) have different way to handle volume, so no need to display it
    enableProgressTooltip boolean true Enable/disable tooltip that shows time popup in progress bar
    useSmoothHover boolean true Enable smooth behavior when hovering progress bar (like YouTube's)
    forceLive boolean false If set to true, the Live Broadcast message will be displayed and progress bar will be hidden, no matter if duration is a valid number
    audioVolume string horizontal Position of volume slider on audio element
    videoVolume string vertical Position of volume slider on video element
    usePluginFullScreen boolean true Flag to activate detection of Pointer events when on fullscreen mode
    useFakeFullscreen boolean false Flag to bypass native capabilities on mobile devices and use the fake-fullscreen mode
    tracksAriaLive boolean false By default, no WAI-ARIA live region - don't make a screen reader speak captions over an audio track.
    hideCaptionsButtonWhenEmpty boolean true Option to remove the [cc] button when no <track kind="subtitles"> are present
    toggleCaptionsButtonWhenOnlyOne boolean false If true and we only have one track, change captions to popup
    startLanguage string (empty) Automatically turn on a <track> element
    slidesSelector string (empty) Selector for slides; could be any valid Javascript selector (#id, .class, img, etc.)
    tracksText string null Title for Closed Captioning button for WARIA purposes
    chaptersText string null Title for Chapters button for WARIA purposes
    muteText string null Title for Mute button for WARIA purposes
    unmuteText string null Title for Unmute button for WARIA purposes
    allyVolumeControlText string null Title for Volume slider for WARIA purposes
    fullscreenText string null Title for Fullscreen button for WARIA purposes
    playText string null Title for Play/Pause button for WARIA purposes when media is playing
    pauseText string null Title for Play/Pause button for WARIA purposes when media is paused

     

    API

    MediaElementPlayer is a complete audio and video player, but you can also use just the MediaElement object which replaces <video> and <audio> with a Flash player that mimics the properties, methods, and events of HTML MediaElement API.

     

    Properties

    PropertyDescriptionGETSET
    autoplay Set or return whether the audio/video should start playing as soon as it is loaded X X
    buffered Return a TimeRanges object representing the buffered parts of the audio/video X  
    controls Set or return whether the audio/video should display controls (like play/pause etc.) X X
    currentSrc Return the URL of the current audio/video X  
    currentTime Set or return the current playback position in the audio/video (in seconds) X X
    duration Return the length of the current audio/video (in seconds); to determine it without playing media, preload="auto" must be set X  
    ended Return whether the playback of the audio/video has ended or not X  
    error Return a MediaError object representing the error state of the audio/video X  
    loop Set or return whether the audio/video should start over again when finished X X
    muted Set or returns whether the audio/video is muted or not X X
    paused Return whether the audio/video is paused or not X  
    readyState Return the current ready state of the audio/video X  
    seeking Return whether the user is currently seeking in the audio/video X  
    src Set or return the current source of the audio/video element X X
    volume Set or return the volume of the audio/video X X

     

    Methods

    MethodDescription
    load() Reload the audio/video element; also, it is used to update the audio/video element after changing the source or other settings
    play() Start playing the audio/video
    pause() Halt (pauses) the currently playing audio or video
    stop() Only present to support Flash RTMP streaming in MediaElementPlayer. The equivalent for other scenarios is pause
    remove() Destroy the video/audio player instance
    canPlayType(type) Determine whether current player can/cannot play a specific media type; type is MIME type and each renderer has a whitelist of them
    setPlayerSize (width, height) Set player's width and height also considering the stretching configuration
    setPoster (url) Add a image tag with the poster's url inside the player's layer; you can pass an empty string to clear the poster
    setMuted (muted) Mute/unmute the player; muted is a boolean value
    setCurrentTime (time) Set a new current time for the player; time is either an integer or float number, and if negative, it will start from zero.
    getCurrentTime () Retrieve the current time of the media being played
    setVolume (volume) Set a volume level for the player; volume is a number between 0 and 1
    getVolume () Retrieve the current volume level of the media being played
    setSrc (src) Set a new URL/path for the player; each renderer has a different mechanism to set it
    getSrc () Retrieve the media URL/path currently being played; each renderer has a different mechanism to return it

     

    Events

    EventAction(s) executed when...
    loadedmetadata Meta data (like dimensions and duration) are loaded
    progress Browser is in the process of getting the media data
    timeupdate The playing position has changed (like when the user fast forwards to a different point in the media)
    seeking The seeking attribute is set to true indicating that seeking has started
    seeked The seeking attribute is set to false indicating that seeking has ended
    canplay A file is ready to start playing (when it has buffered enough to begin)
    play The media is ready to start playing
    playing The media actually has started playing
    pause The media is paused either by the user or programmatically
    ended The media has reach the end (a useful event for messages like "thanks for listening")
    volumechange Volume is changed (including setting the volume to "mute")
    captionschange The media has detected that captions have changed

    原文链接:https://github.com/mediaelement/mediaelement/blob/master/docs/api.md#attributes

    下载地址:mediaelementjs.rar

    转载于:https://www.cnblogs.com/mao2080/p/7667607.html

    展开全文
  • 关于CSS,我相信刚入门或者入门没有多久的人都会觉得,CSS太难兼容各个浏览器,兼容了IE6不兼容IE7,兼容了IE7的话IE6又有问题,还有IE8,IE9,FirFox,Chrome等等浏览器。 或许你会从网上去找兼容各种浏览器的不同...

    关于CSS,我相信刚入门或者入门没有多久的人都会觉得,CSS太难兼容各个浏览器,兼容了IE6不兼容IE7,兼容了IE7的话IE6又有问题,还有IE8,IE9,FirFox,Chrome等等浏览器

    或许你会从网上去找兼容各种浏览器的不同方法,比如所说的hackbox,这是利用不同浏览器对于一些特别的代码的认可性。比如:
    .class{margin-left:10px;}
    *html  .class{ margin-left:20px;}

    这样写的话class左边外间距就是10px,那么*html只能在IE6下面被识别,其他浏览器是不认识他,那么其他浏览器依然是左边外间距10px, 然而在IE6下面则成了20px,这个和程序一样,代码从上往下执行,下面的覆盖上面的。除了这样的还有其他的各种浏览器的不同标签,还有<!– !important –>等等。这样做也太繁琐了,而且终究不是正道,或许我们会想有没有一种代码方式,可以不用做特殊处理就兼容各种浏览器呢?有。

    CSS代码写出来为什么不会兼容各种浏览器?你 去网上搜索一下,主要原因还是各种浏览器对于margin,以及padding还有float等几种个别的属性不兼容而已,所以我们尽量的要处理好这几种 属性,或者可以说是避免使用margin以及padding。你可能会问,不使用margin和padding的话能用CSS写出合适的页面吗?内外间距 怎么办?怎么处理?

    我们拿一个很简单的例子来说吧,
    <ul>
    <li></li>
    <li></li>
    </ul>
    我相信以上这四行代码在写CSS的时候再常见不过了,而这段代码就这么直接产生的效果肯定不是我们想要的,我们要给它调颜色,间距等等,然而调间距就涉及 到了margin和padding,然后涉及到这两个东西的时候又会造成各个浏览器显示的内容不一样,那么,我们可不可以换一种方式来达到我们要的效果 呢?当然可以,我们直接给<li>标签设置固定的高度,宽度,以及行高,这样也可以达到我们想要的效果,你不妨试一下。

    至于float造成的变形,也很好办,比如一行三个栏目,不要想着前面两个栏目float:left;第三个就不用了,不要珍惜那一句代码,第三个也要写上,这一行布局完之后记得清除浮动,clear:clearboth;然后再开始布局下一行。

    还有比较重要的一点就是,浏览器对于CSS的各种属性的默认值是不一样的,所以在刚开始一定要定义全局代码,清除margin,padding等等,这样不仅仅对于兼容浏览器有帮助,也对于你能写出高效代码有帮助。

    CSS代码布局要严谨,每个DIV宽和高(有时候需要auto)是多少px就是px,一定要定义清楚,因为各个浏览器的默认值也不一样,还有就是为 每个div都用上overflow:hedden;清楚溢出,这样即使是有些地方使用了paddding,也不对你的整体布局造成明显的影响。

    最后,还是需要多多尝试,多多思考,多多总结。以上内容页是我自己慢慢摸索出来的。

    转载于:https://www.cnblogs.com/huangcong/archive/2011/06/28/2092116.html

    展开全文
  • 华为云RDS提供超强兼容性,助力管家婆轻松上云 古语言不如故,衣不如新,放到 IT 行业,大抵成了软件不如新,版本不如旧。...  耗费完人力不算,兼容性问题更是拔出萝卜带出泥,随之而来成本问题顺
  • 伴随着PHP 7发布,这几天关于PHP 7性能和兼容性成了大家讨论热点话题,PHP 7表现出来高性能让不少蠢蠢欲动,有些“尝鲜”朋友已经将PHP 7应用到了生产环境当中了。同时,LNMP等热门应用程序也及时作了更新...
  • 繁忙的工作时间,低头的人群,在这个人潮里,深夜的时候,对于仍然还在忙碌的人来说,能有那么几首好听的歌陪伴同行,在特定的环境中可以独自享受自己的世界。耳机是个人音响,它的用途很广泛,关于耳机你又了解多少...
  • 走在大街上我们不难发现,很多人使用的耳机已经开始逐渐从有线转向无线。...事实上追求音质的人一听就能听出来,苹果无线耳机的音质真的没那么好。你要是追求音质完全没必要硬着头皮入手,其实平价
  • 其中比较难解决问题就是获取网络连线实际名称,大部分使用IP设置脚本都是将【本地连接】写死在代码中,可实际上并不是所有电脑都叫本地连接;比如有用户电脑可能升级了网卡驱动,或者更换了网卡,导致网络...
  • 电磁兼容性(EMC)是指设备或系统在其电磁环境中符合要求运行并不对其环境中任何设备产生无法忍受电磁干扰能力。因此,EMC包括两个方面要求:一方面是指设备在正常运行过程中对所在环境产生电磁干扰不能...
  • X86如何解决Android应用兼容性问题?

    千次阅读 2013-05-13 10:27:14
    经过测试,X86应用兼容性已经做十分完善,英特尔此前宣布可达95%的兼容性不假,大家大可放下心里包袱。不过英特尔是如何做到,这背后原因很多并不知道。恰好在IDF上,笔者遇到了一位英特尔软件部门工程
  • 它可以帮助您控制游戏和游戏平台,让您以自己想要方式启动游戏,而不会遇到通常陷阱和兼容性问题,而这些问题和兼容性问题导致游戏平台无法正常运行。 Launchpad可以处理几乎所有您可以抛弃高级启动方案! ...
  • 温馨提醒:视频大小约 4.8 MB今日,要给大家解答一个近期购机推荐时常有问起话题,华为 Mate 20 Pro 和华为 P30 Pro 要怎么选?在解答这个问题之前,我们先了解一下它们价格,单从京东平台上看,同样8GB+128...
  • 原创:Js解析xml文件并简单实现省市区级联菜单(并解决各浏览器兼容性问题). 前不久日本发生了一场惹非议地震中,因此也引发了中国购买食盐狂热份子!然后又因发了一场退盐事件.然后80,90后们并没有参与其中,说明...
  • 期盼着这届学员每个都能够实现自己理想,自己这段时间为了加强学生基础,一直忙于授课也没有时间写写blog,今天终于有点时间总结一下js解析xml文件方式,并彻底解决各个浏览器兼容性问题简单实现省市区级联菜单...
  • 纯CSS实现图片圆角边框效果,兼容IE6.实现原理很简单,利用绝对定位,使一个背景为PNG图片边框覆盖在...个人比较推崇用JS来实现IE6PNG,适应比较,但如果你只有一两处用到PNG,完全可以用滤镜方式来实现.核心CSS...
  • 原创:Js解析xml文件并简单实现省市区级联菜单(并解决各浏览器兼容性问题). 前不久日本发生了一场惹非议地震中,因此也引发了中国购买食盐狂热份子!然后又因发了一场退盐事件.然后80,90后们并没有参与其中,...
  • 可配置和适应性强。 为什么要使用ADL? 现代化API-不再有静态类,不再有extern 。 像使用一流对象一样使用本机API。 灵活性-将本机API注入类中,更改库扫描逻辑,混合托管代码和本机代码。 -ADL快速发展,并...
  • <div><p>现在要支持rem需要 1. 在配置文件中设置<code>global.rem</code>,这一步倒是没啥 2. 在每个页面设置 ...这样好处就是扩展比较 </li></ol>该提问来源于开源项目:Tencent/kbone</p></div>
  • 最近在网上看到了一种写气泡提示纯CSS代码,其代码简练,兼容性,是非常少见,效果如下图。 首先,是第一种,利用字符“◆”实现。 请看代码,HTML部分: 1 2 3 4 <div class...
  • 很多说基于UI自动化就是一个大坑,有时写自动化测试脚本而...当然,兼容性了,也可能把bug给放过了,还是把握住用例检查点,确实抓住这个点验证功能,而其他情况忽略。只做功能点检查,是比较适合UI自动化
  •  优点:面对不同分辨率设备,灵活性强,能够快捷地解决设备显示适应问题。  缺点:兼容各种设备时所需工作量大、效率低下、代码累赘,会隐藏无用元素,加载时间延长,其实这是一种折中性质十设计解
  • E-mail兼容性 Radix-64 对E-mail应用提供透明性,采用基数64编码将加密后消息(二进制流)转换为ASCII字符串 数据分段 - 为了适应最大消息长度限制,PGP执行分段和重新组装 2、PGP密钥管理 PGP是一种混合密码...
  • bootstrap可以为我们做: 机交互友好性:界面简洁、大方、美观、易用,但是css...跨浏览器兼容性:目前跨浏览器兼容性方面不是非常好,css3有些样式,有浏览器没有实现。  我毕业设计是多用户多代理...
  • 最近几天,有的人在偷偷地买蚂蚁的基金,有的人却偷偷的在蚂蚁面试。 最近确实是面试的好时候。大家都奔着大厂去的,最近也分享了好多大厂的面经了,什么阿里、...缺点:兼容性较差,但随意影响力的扩大,该问题会.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 640
精华内容 256
关键字:

兼容性强的人