整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

发视频、图文没素材?不妨看看这个

发视频、图文没素材?不妨看看这个

天给大家整理了一些 素材网站 让大家更好通过各种计划.

图片素材库


国内:


https://huaban.com


http://699pic.com


https://www.58pic.com


百度图片



国外:

https://pixabay.com

https://unsplash.com

https://gratisography.com/page/3/

https://cn.freeimages.com/image

https://www.freepik.com

https://foter.com

https://visualhunt.com

https://www.inspirationde.com/

视频素材库

https://pixabay.com/zh/videos/

https://mixkit.co/videos/

https://gaiamount.com

https://www.filmstocks.com/c/effects-filmora-effects.html

https://www.skypixel.com/tags?group=equipment

音频素材库


https://www.free-stock-music.com/search.php?cat=&mood=&license=&bpm=&length=&keyword=


http://www.aigei.com/

https://audionautix.com/

https://www.audiolibrary.com.co/

https://www.youtube.com/audiolibrary/music

字体素材库

国内无授权免费的商用字体:思源字体、站酷字体、濑户字体、庞门正道标题本、手书体中文简体、阿里巴巴普惠体

https://www.zcool.com.cn

站长之家—站长素材

片头素材库

https://panzoid.com/tools/clipmaker

使用时下载谷歌翻译插件,将网站的英文翻译成中文,便于实操。

视频解析网站:

https://youtube.iiilab.com/

http://www.tutujiexi.com/kuaishou.html

语音转字幕

https://www.iflyrec.com/

https://jianwai.netease.com/

语音合成

https://www.data-baker.com/tts.html

学习资源网站:

https://www.doyoudo.com

http://www.syseen.com(用QQ浏览器打开)

高清电影 电视剧 网站:


https://gaoqing.fm/


http://www.btdx8.com/


http://www.yournextfilm.com/us/


http://gaoqing.la/


http://www.bttt.la/


http://neets.cc/found


http://www.ttmeiju.com/


http://www.zimuku.net/


http://keepvid.com/


http://www.mtime.com/trailer/trailer/


http://yugaopian.cn/


http://www.imdb.com/


http://www.btbtdy.com/


http://www.hao4k.com/


http://ww手机,电脑找寻优质素材


找图片

手机的壁纸软件

花瓣

https://huaban.com/

站酷

https://www.zcool.com.cn/

千图

https://www.58pic.com/

有的图片需要会员

千库网

https://588ku.com/

缺点:有的图片需要会员

堆糖

https://www.duitang.com/

Pexels

https://www.pexels.com/

缺点:只支持英文搜图。

500PX

https://web.500px.com/

缺点:虽然支持中文,但是采用中文进行搜索准确率太低。

找文案

微博,知乎,简书,天涯,小红书,贴吧,豆瓣,公众号,各大自媒体平台(头条号,大鱼号,企鹅号)等

抖音拍

拍同款

翻拍

数英网(市场营销、广告传媒、创意设计、电商、移动互联网等)

https://www.digitaling.com/

顶尖文案(全球范围内最优秀的创意资讯)

https://www.topys.cn/

广告门(是中国广告传播行业领先在线媒体及产业互动资讯服务平台)

https://www.adquan.com/

梅花网(营销者的信息中心)

https://www.meihua.info/

中华广告网(国内最专业的广告行业门户网站)

http://www.a.com.cn/index.html

SocialBeta (社交媒体和数字营销内容)

https://socialbeta.com/

商业洞察(品牌行销广告创意)

https://www.motive.com.tw/

广告最好看(视频广告文案)

https://zhk8.com/

我是文案(文案案例、文案新闻、文案写作)

http://copywrite-tw.com/

找视频

bilibili b站(动漫,2次元)

腾讯,爱奇艺,优酷等各大平台

疯狂影视

http://ifkdy.com/

搜索全网电影电视的影视搜素引擎

视屏资源网站

www.ygdy8.com

80s

茶狐杯

https://www.cupfox.com/

中国最大的影视资源聚合搜索引擎

手机实操

微信搜索 西果工具小程序

可去抖音水印

迅雷下载

安卓可用

手机

手机自带的软件

电脑实操

浏览器上

bianlu1

猫抓,适合抓音频(抓语音,音乐)不适合抓视频

边播边录

手机上面没有猫抓,在QQ浏览器上面有“资源嗅探”可以抓取语音和音乐

语言合成(标贝科技)

https://www.data-baker.com/

录屏

电脑

ev录屏

http://xinzhi.wenda.so.com/a/1547632721203232

手机,电脑找寻优质素材

找图片

手机的壁纸软件

花瓣

https://huaban.com/

站酷

https://www.zcool.com.cn/

千图

https://www.58pic.com/

有的图片需要会员

千库网

https://588ku.com/

缺点:有的图片需要会员

堆糖

https://www.duitang.com/

Pexels

https://www.pexels.com/

缺点:只支持英文搜图。

500PX

https://web.500px.com/

缺点:虽然支持中文,但是采用中文进行搜索准确率太低。

找文案

微博,知乎,简书,天涯,小红书,贴吧,豆瓣,公众号,各大自媒体平台(头条号,大鱼号,企鹅号)等

抖音拍

拍同款

翻拍

数英网(市场营销、广告传媒、创意设计、电商、移动互联网等)

https://www.digitaling.com/

顶尖文案(全球范围内最优秀的创意资讯)

https://www.topys.cn/

广告门(是中国广告传播行业领先在线媒体及产业互动资讯服务平台)

https://www.adquan.com/

梅花网(营销者的信息中心)

https://www.meihua.info/

中华广告网(国内最专业的广告行业门户网站)

http://www.a.com.cn/index.html

SocialBeta (社交媒体和数字营销内容)

https://socialbeta.com/

商业洞察(品牌行销广告创意)

https://www.motive.com.tw/

广告最好看(视频广告文案)

https://zhk8.com/

我是文案(文案案例、文案新闻、文案写作)

http://copywrite-tw.com/

找视频

bilibili b站(动漫,2次元)

腾讯,爱奇艺,优酷等各大平台

疯狂影视w.viphd.co/

为52题需要创建一个web 后台,并开发一个客户端来请求,并在界面显示。

涉及到internet web 请求相关的内容。

如下题目,实现本身很容易,但是做题的目的不纯是做题,还是先做下基础学习。


翻译下面这本书,讲的不是很深,但是基本原理说的还是很清晰的:

https://launchschool.com/books/http/read/introduction#gettingstarted

Introduction

Getting Started

If you're like most people, you've been using the internet for a long time - years, perhaps decades - and typing in those pesky URL addresses at the top of your browser, starting with the letters H, T, T, P, followed by the colon, slash, slash, w, w, w then the domain, over and over and over, yet never knowing or caring to know about what it stood for.

HTTP is at the core of what the web is about, and also at the core of dynamic web applications. Understanding HTTP is central to understanding how modern web applications work and how they're built. This book will cover some basic concepts around HTTP, and you'll have a much better understanding of how the web and web applications work after going through it.

翻译:HTTP是因特网的核心,这本书会介绍HTTP几个基础的概念。

Who Is This Guide For?

This book is geared towards those who have been using the internet for a while, but have never built dynamic web applications before. It's meant for people interested in understanding how web applications work, and lays the foundational knowledge to learning more advanced web application development concepts.

翻译:这篇文章是为一些人,这些人已经用了internet 很久了,不过从来没有搭建过动态web 应用。为有兴趣了解web 怎么工作的人,介绍一些基础知识,这样可以学到更高级的web 应用开发的概念。

How To Read This Guide?

Most of this book is going to be reading oriented. That is, there are not a lot of exercises, because this is mostly a book about concepts. However, where there are examples, please take time to follow along and learn by doing. There is no better way to truly understand a topic than by doing.

翻译:这本书没有太多的练习,主要是面向读者。

Background

A Brief Overview & History

When you type a URL into the address bar of your web browser, you expect to see the website displayed in your browser. When you click on a link, or submit a form, your browser may display the next page, or display errors in your form so you can correct them and submit again. Your browser is the interface or window, through which you interact with the world wide web.

Under your browser's hood lies a collection of files -- CSS, HTML, Javascript, videos, images, etc. -- that makes displaying the page possible. All these files were sent from a server to your browser, the client, by an application protocol called HTTP (yes, this is why URLs in your browser address bar start with "http://").

HTTP, or Hypertext Transfer Protocol, was invented by Tim Berners-Lee in the 1980s. It is a system of rules, a protocol, that serve as a link between applications and the transfer of hypertextdocuments. Stated differently, it's an agreement, or message format, of how machines communicate with each other. HTTP follows a simple model where a client makes a request to a server and waits for a response. Hence, it's referred to as a request response protocol. Think of the request and the response as text messages, or strings, which follow a standard format that the other machine can understand.

The HTTP protocol has been through several changes from its inception. The protocol started in its most simplified form returning only HTML pages. In 1991, the first document version HTTP/0.9 was released. In 1992, HTTP/1.0 was released with the ability to transmit different file types like CSS documents, videos, scripts and images. 1995 saw the release of HTTP/1.1, which introduced the ability to reuse established connections for subsequent requests, among a host of other features. Further improvements made to HTTP/1.1 in 1999 resulted in what we mostly see today. The evolution of HTTP doesn't stop there though. HTTP/2 is fast gaining traction, and the latest version, HTTP/3, is currently in development.

快速介绍背景和历史:

浏览器这个帽子底下,藏着一堆文件:CSS、HTML、javascript,video,images 等等。这些内容都是从一个服务器发送到你的浏览器上的。(浏览器又叫客户端) HTTP 就是一个请求回复的协议。可以把请求回复理解为 用文本信息、字符串 进行传输,以机器语言来返回。

1992 年 HTTP/1.0 能够传输不同的文件类型,比如CSS、Videos,scriptes、images. 1995 年 HTTP/1.1 开始能够重复使用已经建立的链接,进行随后的请求。

1999年的 HTTP/1.1 更新版本 基本就是我们现在看到的版本。 目前HTTP/2 正在快速获得大众支持。

How the Internet Works

The Internet consists of millions of interconnected networks that allow all sorts of computers and devices to communicate with each other. By convention, all devices that participate in a network are provided unique labels. The general term for this type of label is an Internet Protocol Address or IP Address and is similar to a computer's phone number on the Internet. Port numbers add more detail about how to communicate (think of company phone extensions). IP Addresses are represented as:

192.168.0.1

When a port number is needed, the address is specified as:

192.168.0.1:1234

where the IP Address is 192.168.0.1 and the port number is 1234. An IP Address acts as the identifier for a device or server, which can contain hundreds or thousands of ports, each used for a different communication purpose to that device or server.

When it comes to the wider Internet, effective communication begins when each device has a public IP address provided by an Internet Service Provider. But what about an address like http://www.google.com? How does your computer know what IP address it's mapped to? When we wish to connect to Google's main page, we do not type in the IP Address, we type in its URL.

internet 如何工作

翻译:这里介绍了IP地址的工作原理,其中IP地址类似电话号码,端口号同一个电话号码中不同的用途方式。

DNS

This mapping from URL to IP address is handled by the Domain Name System or DNS. DNS is a distributed database which translates domain names like www.google.com to an IP address, so that the IP address can then be used to make a request to the server. Stated differently, it keeps track of domain names and their corresponding IP addresses on the Internet. So an address like www.google.com might be resolved to an IP address 197.251.230.45.

By the way, you can also get to Google's main page by typing the IP address into your browser's address bar. However, most people want to use a user-friendly address like www.google.com, instead of memorizing a number of digits. DNS databases are stored on computers called DNS servers. It is important to know that there is a very large world-wide network of hierarchically organized DNS servers, and no single DNS server contains the complete database. If a DNS server does not contain a requested domain name, the DNS server routes the request to another DNS server up the hierarchy. Eventually, the address will be found in the DNS database on a particular DNS server, and the corresponding IP address will be used to receive the request.

Your typical interaction with the Internet starts with a web browser when you:

Enter a URL like http://www.google.com into your web browser's address bar.

The browser creates an HTTP request, which is packaged up and sent to your device's network interface.

If your device already has a record of the IP address for the domain name in its DNS cache, it will use this cached address. If the IP address isn't cached, a DNS request will be made to the Domain Name System to obtain the IP address for the domain.

The packaged-up HTTP request then goes over the Internet where it is directed to the server with the matching IP address.

The remote server accepts the request and sends a response over the Internet back to your network interface which hands it to your browser.

Finally, the browser displays the response in the form of a web page.

The above set of steps is a simplification of what happens at a technical level. The main thing to understand though is that when your browser issues a request, it's simply sending some text to an IP address. Because the client (web browser) and the server (recipient of the request) have an agreement, or protocol, in the form of HTTP, the server can take apart the request, understand its components and send a response back to the web browser. The web browser will then process the response strings into content that you can understand. Navigating to websites like Facebook, Google and Twitter means you've been using HTTP all along. The details were hidden, but your browser was issuing the requests and processing the responses automatically. The different parts of the Internet look something like:

翻译:

这里介绍了DNS的概念,DNS 是一个分布式的数据库,做 域名 和 IP地址的互相翻译。

这里介绍,DNS 其实是一堆服务器,通过不同的层级来控制规模。(感兴趣的读者可以了解下,一级域名、二级域名 等概念,)

当打开internet 浏览器,正常的处理逻辑如下:

1. 在浏览器键入一个url 。http://www.google.com

2. 浏览器创建一个HTTP请求,并封装好后发到个人设备(比如手机)的网卡上。

3. 如果网卡已经缓存了这个域名(www.goolge.com)中的IP,他会直接使用缓存的地址。否则向域名系统获取这个域名对应的地址。(译者备注:dns 递归查询)

4. 打包好的HTTP请求会直接向拥有这个地址的服务器发送。

5. 远程的服务器接受了这个请求,并通过internet 返回一个包到你的个人设备(比如手机)的网卡上,网卡传回给你的浏览器。

6. 最后浏览器已web 界面的方式展现了回复。

上面的步骤是从技术层层面一个简单的描述。internet 不同的部分就如下图一样。


Clients and Servers

The most common client is an application you interact with on a daily basis called a Web Browser. Examples of web browsers include Internet Explorer, Firefox, Safari and Chrome, including mobile versions. Web browsers are responsible for issuing HTTP requests and processing the HTTP response in a user-friendly manner onto your screen. Web browsers aren't the only clients around, as there are many tools and applications that can also issue HTTP requests.

The content you're requesting is located on a remote computer called a server. Servers are nothing more than machines or devices capable of handling inbound requests, and their job is to issue a response back. Often, the response they send back contains relevant data as specified in the request.

最常见的客户端就是Web 浏览器。浏览器主要用来做HTTP 请求,以及处理HTTP 请求,并投放到客户端屏幕上,浏览器处理后,人可以看得更清楚。

你申请的文件 放在远端的电脑上,这个电脑我们叫做服务器。服务器就是处理进来的请求,并返回一个答复。一般针对一个请求的数据都存放在回复中(response).



Resources

Resource is a generic term for things you interact with on the Internet via a URL. This includes images, videos, web pages and other files. Resources are not limited to files and web pages. Resources can also be in the form of software that lets you trade stock or play a video game. There is no limit to the number of resources available on the Internet.

翻译:资源指的是通过url从 internet 申请的东西。包括图片、视频、web 界面及其它。



Statelessness

A protocol is said to be stateless when it's designed in such a way that each request/response pair is completely independent of the previous one. It is important to be aware of HTTP as a stateless protocol and the impact it has on server resources and ease of use. In the context of HTTP, it means that the server does not need to hang on to information, or state, between requests. As a result, when a request breaks en route to the server, no part of the system has to do any cleanup. Both these reasons make HTTP a resilient protocol, as well as a difficult protocol for building stateful applications. Since HTTP, the protocol of the internet, is inherently stateless that means web developers have to work hard to simulate a stateful experience in web applications.

When you go to Facebook, for example, and log in, you expect to see the internal Facebook page. That was one complete request/response cycle. You then click on the picture -- another request/response cycle -- but you do not expect to be logged out after that action. If HTTP is stateless, how did the application maintain state and remember that you already input your username and password? In fact, if HTTP is stateless, how does Facebook even know this request came from you, and how does it differentiate data from you vs. any other user? There are tricks web developers and frameworks employ to make it seem like the application is stateful, but those tricks are beyond the scope of this book. The key concept to remember is that even though you may feel the application is stateful, underneath the hood, the web is built on HTTP, a stateless protocol. It's what makes the web so resilient, distributed, and hard to control. It's also what makes it so difficult to secure and build on top of.

如果某协议每一个 request/response 和前一个request/response 完全是独立的,这个协议被认为是无状态的:非常重要需要了解HTTP是一个无状态协议(敲黑板),HTTP 对服务器资源有影响,以及易用性的影响。

HTTP里面,服务器不需要在客户端requests请求之间维持住信息、或者状态。这样的话,当客户端一个请求没有到达服务器,系统不需要做任何清理。

这些原因让HTTP变成一个有弹性的协议,如果需要创建有状态的应用,也是一个比较复杂的协议。(敲黑板,不是不能用http做有状态的应用,只是比较复杂

有一些技巧,让框架开发者让用户看起来web 应用是有状态的。

你需要记住的是,有状态web应用的帽子底下,创建在HTTP 上,一个无状态协议上。也是因为这点,web 业务非常的有弹性、分布式而且很难控制,另外也很难实现安全

summary

This chapter covered an oversimplified interpretation of how the Internet works along with an explanation of a few key terms. You also learned about statelessness and how it impacts web applications. We'll take a closer look at what an address such as http://www.google.com is and what it's made up of in the next chapter.

翻译:本章包含了一些基本的理解 inernet 怎么工作,你也了解到了无状态 的含义,以及他对 web 应用的影响。

在前面

现在视频业务越来越流行了,播放器也比较多,作为前端工程师如何打造一个属于自己的播放器呢?最快最有效的方式是基于开源播放器深度定制,至于选择哪个开源播放器仁者见仁智者见智,可以参考开源播放器列表(https://www.awesomes.cn/subject/videos)选择适合自己业务的播放器。

我们的播放器选择了排名第一的video.js播放器,截至目前该播放器在Github拥有13,991 star, 4,059 fork,流行程度可见一斑。为了让大家更多的了解它,我们细数下优点:

  1. 免费开源

    这个意味着什么就不多说了,附上项目地址(https://github.com/videojs/video.js)

  2. 兼容主流浏览器

    在国内的前端开发环境往往需要支持到低级版本的IE浏览器,然后随着Flash的退化,很多公司没有配备Flash开发工程师,video.js提供了流畅的Flash播放器,而且在UI层面做到了和video的效果,实属难得,比如全屏。

  3. UI自定义

    不管开源项目在UI方面做的如何漂亮,对于各具特色的业务来说都要自定义UI,一个方便简单的自定义方式显得格外重要,更何况它还自带了编译工具,只能用一个”赞“字形容。具体怎么实现的,这里先简单描述下是使用JavaScript(es6)构建对象,通过Less编写样式规则,最后借助Grunt编译。

  4. 灵活插件机制

    video.js提供一个插件定义的接口,使插件开发简单易行。而且社区论坛也提供了一些好用的插件供开发者使用。附插件列表

  5. 比较完善的文档

    完善的文档对于一个稳定的开源项目是多么的重要,video.js提供了教程、API文档、插件、示例、论坛等。官方地址

  6. 项目热度

    开源作者对项目的维护比较积极,提出的问题也能很快给予响应。开发者在使用过程中出现问题算是有一定保障。

书归正传,要想更自由的驾驭video.js,必然要了解内部原理。本文的宗旨就是通过核心代码演示讲解源码运行机制,如果有兴趣,不要离开,我们马上开始了……

组织结构

由于源码量较大,很多同学不知道从何入手,我们先来说下它的组织结构。

其中control-bar,menu,popup,slider,tech,tracks,utils是目录,其他是文件。video.js是个非常优秀的面向对象的典型,所有的UI都是通过JavaScript对象组织实现的。

video.js是个入口文件,看源码可以从这个文件开始。

setup.js处理播放器的配置安装即data-setup属性。

poster-image.js处理播放器贴片。

plugins.js实现了插件机制。

player.js构造了播放器类也是video.js的核心。

modal-dialog.js处理弹层相关。

media-error.js定义了各种错误描述,如果想理解video.js对各语言的支持,这个文件是必看的,它是桥梁。

loading-spinner.js实现了播放器加载的标志,如果不喜欢默认加载图标在这里修改吧。

fullscreen-api.js实现各个浏览器的全屏方案。

extend.js是对node 继承 and babel's 继承的整合。

event-target.js 是event类和原生事件的兼容处理。

error-display.js 主要处理展示错误的样式设置。

component.js 是video.js框架中最重要的类,是所有类的基类,也是实现组件化的基石。

close-button.js 是对关闭按钮的封装,功能比较单一。

clickable-component.js 如果想实现一个支持点击事件和键盘事件具备交互功能的组件可以继承该类,它帮你做了细致的处理。

button.js 如果想实现一个按钮了解下这个类是必要的。

big-play-button.js 这个按钮是视频还未播放时显示的按钮,官方将此按钮放置在播放器左上角。

utils目录顾名思义是一些常用的功能性类和函数。

tracks目录处理的是音轨、字幕之类的功能。

tech目录也是非常核心的类,包括对video封装、flash的支持。

slider目录主要是UI层面可拖动组件的实现,如进度条,音量条都是继承的此类。

popup目录包含了对弹层相关的类。

menu目录包含了对菜单UI的实现。

control-bar目录是非常核心的UI类的集合了,播放器下方的控制器都在此目录中。

通过对组织结构的描述,大家可以,想了解video.js的哪一部分内容可以快速入手。如果还想更深入的了解如何正确使用这些类,请继续阅读继承关系一节。

继承关系

video.js是JavaScript面向对象实现很经典的案例,你一定会好奇在页面上一个DOM节点加上data-setup属性简单配置就能生成一个复杂的播放器,然而在代码中看不到对应的HTML”模板“。其实这都要归功于”继承“关系以及作者巧妙的构思。

在组织结构一节有提到,所有类的基类都是Component类,在基类中有个createEl方法这个就是JavaScript对象和DOM进行关联的方法。在具体的类中也可以重写该方法自定义DOM内容,然后父类和子类的DOM关系也因JavaScript对象的继承关系被组织起来。

为了方便大家查阅video.js所有的继承关系,整理了两个图表,一个是完整版,一个是核心版。

  • 完整版

  • 核心板

运行机制

video.js源码代码量比较大,我们要了解它的运行机制,首先确定它的主线是video.js文件的videojs方法,videojs方法调用player.js的Player类,Player继承component.js文件的Component类,最后播放器成功运行。

我们来看下videojs方法的代码、Player的构造函数、Component的构造函数,通过对代码的讲解基本整个运行机制就有了基本的了解,注意里面用到的所有方法和其他类对象参照组织结构一节细细阅读就可以掌握更多的运行细节。

  • videojs方法

  • Player的构造函数

  • Component的构造函数

这里通过主线把基本的流程演示一下,轮廓出来了,更多细节还请继续阅读。

插件机制

一个完善和强大的框架都会继承插件运行功能,给更多的开发者参与开发的机会进而实现框架功能的补充和延伸。我们来看下video.js的插件是如何运作的。

  • 插件的定义

如果之前用过video.js插件的同学或者看过插件源码,一定有看到有这句话videojs.plugin=pluginName,我们来看下源码:

不难看出,原理就是将插件(函数)挂载到Player对象的原型上,接下来看下是怎么执行的。

  • 插件的运行

在Player的构造函数里判断是否有插件这个配置,如果有则遍历执行。

UI"继承"的原理

在继承关系一节中有提到video.js的所有DOM生成都不是采用的传统模板的方式,都是通过JavaScript对象的继承关系来实现的。

在Component基类中有个createEl方法,在这里可以使用DOM类生成DOM实例。每个UI类都会有一个el属性,会在实例化的时候自动生成,源代码在Component的构造函数中:

每个UI类有一个children属性,用于添加子类,子类有可能扔具有children属性,以此类推,播放器的DOM结构就是通过这样的JavaScript对象结构实现的。

在Player的构造函数里有一句代码this.initChildren();启动了UI的实例化。这个方法是在Component基类中定义的,我们来看下:

通过这段代码不难看出大概的意思是通过initChildren获取children属性,然后遍历通过addChild将子类实例化,实例化的过程会自动重复上述过程从而达到了”继承“的效果。不得不为作者的构思点赞。如果你要问并没看到DOM是怎么关联起来的,请继续看addChild方法的源码:

这段代码的大意就是提取子类的名称,然后获取类并实例化,最后通过最关键的一句话this.contentEl().insertBefore(component.el(), refNode);完成了父类和子类的DOM关联。相信inserBefore大家并不陌生吧,原生的DOM操作方法。

总结

至此,video.js的精华部分都描述完了,不知道大家是否有收获。这里简单的总结一些阅读video.js框架源码的心得:

  1. 找准播放器实现的主线流程,方便我们有条理的阅读代码

  2. 了解框架代码的组织结构,有的放矢的研究相关功能的代码

  3. 理解类与类的继承关系,方便自己构造插件或者修改源码的时候知道从哪个类继承

  4. 理解播放器的运行原理,有利于基于Component构造一个新类的实现

  5. 理解插件的运行机制,学会自己构造插件还是有必要的

  6. 理解UI的实现原理,就知道自己如何为播放器添加视觉层面的东西了

  7. 看看我的源码解读吧,能帮一点是一点,哈哈