video.js的简单用法
今天项目中需要跨浏览器地播放视频,在网上找了一下,找到了video.js,记录一下video.js的简单用法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
< html >
< head >
...
<!-- 引入video.js的样式文件 -->
< link rel = "stylesheet" type = "text/css" href = "css/video-js.css" />
...
<!-- 如果没有使用Modernizr,则使用以下代码做shiv -->
< script type = "text/javascript" >
document.createElement('video');document.createElement('audio');document.createElement('track');
</ script >
...
<!-- 引入video.js的脚本文件 -->
< script src = "js/video.js" type = "text/javascript" charset = "utf-8" ></ script >
<!-- 指定videojs的flash文件 -->
< script type = "text/javascript" >
videojs.options.flash.swf = "js/video-js.swf";
</ script >
...
</ head >
< body >
...
< video id = "sample_video" preload = "none" class = "video-js vjs-default-skin vjs-big-play-centered" data-setup = '{ "controls": true, "autoplay": false, "preload": "none", "poster": "images/sample_video_poster.png", "width": 852, "height": 480 }' >
< source src = "videos/sample_video.mp4" type = 'video/mp4' />
<!-- 如果浏览器不兼容HTML5则使用flash播放 -->
< object id = "sample_video" class = "vjs-flash-fallback" width = "852"
height = "480" type = "application/x-shockwave-flash"
data = "http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" >
< param name = "movie"
value = "http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" />
< param name = "allowfullscreen" value = "true" />
< param name = "flashvars" value = 'config={"playlist":["images/sample_video_poster.png", {"url": "videos/sample_video.mp4","autoPlay":false,"autoBuffering":true}]}' />
<!-- 视频图片. -->
< img src = "images/sample_video.png" width = "852"
height = "480" alt = "Poster Image"
title = "No video playback capabilities." />
</ object >
</ video >
...
< script type = "text/javascript" >
var myPlayer = null;
$(document).ready(function() {
...
if(!myPlayer) {
// Using the video's ID or element
myPlayer = videojs("video_center_video");
}
// After you have references to your players you can...(example)
myPlayer.play(); // Starts playing the video for this player.
...
});
</ script >
</ body >
</ html >
|
上面的用法是tag标签的使用办法,官方文档里还写了使用js初始化的办法,很简单,可参照https://github.com/videojs/video.js/blob/stable/docs/guides/setup.md
使用video.js有一个好处就是video标签或flashvars中可以指定多个视频源,它会根据浏览器自动寻找合适的视频进行播放。
不过今天使用video.js的时候发现一个问题,当设置了preload为auto之后,在chrome下首次刷新网页网络请求会出现一个错误。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Request URL:
http://xxxxx/yyyy.mp4
Request Headers CAUTION: Provisional headers are shown.
Accept-Encoding:
identity; q=1, *;q= 0
Cache-Control:
max-age=0
Range:
bytes=0-
Referer:
http://xxxxx
User-Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
|
暂时将preload设置为none规避此问题。
默认的video.js的样式不太好看,顺便附上从锤子网http://www.smartisan.com/爬下来的样式文件。
1
2
3
4
5
|
/*!
Video.js Default Styles (http://videojs.com)
Version 4.6.1
Create your own skin at http://designer.videojs.com
*/ .vjs-default-skin{ color : #ccc }@font-face{ font-weight : 400 ; font-style : normal }.vjs-default-skin .vjs-slider{ outline : 0 ; position : relative ; cursor : pointer ; padding : 0 ; background : url (../images/bg_player_icon_v.png) 0 -210px repeat-x }.vjs-default-skin .vjs-slider:focus{-webkit-box-shadow: 0 0 2em #fff ;-moz-box-shadow: 0 0 2em #fff ;box-shadow: 0 0 2em #fff }.vjs-default-skin .vjs-slider-handle{ font-family :VideoJS; font-size : 1em ; line-height : 1 ; text-align : center ; text-shadow : 0 0 1em #fff ; position : absolute ; top : -13px ; left : 0 ; background : url (../images/bg_player_icon_v.png) 0 -90px no-repeat ; width : 33px ; height : 33px }.vjs-default-skin .vjs-control-bar{ display : none ; position : absolute ; bottom : 0 ; left : 0 ; right : 0 ; height : 39px ; padding : 3px 0 0 ; background-color : #000 }.vjs-default-skin.vjs-has-started .vjs-control-bar{ display : block ; visibility : visible ;opacity: 1 ;-webkit-transition:visibility . 1 s,opacity . 1 s;-moz-transition:visibility . 1 s,opacity . 1 s;-o-transition:visibility . 1 s,opacity . 1 s;transition:visibility . 1 s,opacity . 1 s}.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{ display : block ; visibility : hidden ;opacity: 0 ;-webkit-transition:visibility 1 s,opacity 1 s;-moz-transition:visibility 1 s,opacity 1 s;-o-transition:visibility 1 s,opacity 1 s;transition:visibility 1 s,opacity 1 s}.vjs-default-skin.vjs-controls-disabled .vjs-control-bar{ display : none }.vjs-default-skin.vjs-using-native-controls .vjs-control-bar{ display : none }.vjs-default-skin.vjs-error .vjs-control-bar{ display : none }@media \ 0 screen{.vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before{ content : "" }}.vjs-default-skin .vjs-control{ outline : 0 ; position : relative ; float : left ; text-align : center ; margin : 0 ; padding : 0 ; height : 3em ; width : 4em }.vjs-default-skin .vjs-control:before{ font-family :VideoJS; font-size : 1.5em ; position : absolute ; top : 0 ; left : 0 ; width : 100% ; height : 100% ; text-align : center ; text-shadow : 1px 1px 1px rgba( 0 , 0 , 0 ,. 5 )}.vjs-default-skin .vjs-control:focus:before,.vjs-default-skin .vjs-control:hover:before{ text-shadow : 0 0 1em #fff }.vjs-default-skin .vjs-control-text{ border : 0 ; clip :rect( 0 0 0 0 ); height : 1px ; margin : -1px ; overflow : hidden ; padding : 0 ; position : absolute ; width : 1px }.vjs-default-skin .vjs-play-control{ width : 5em ; cursor : pointer ; background : url (../images/bg_player_icon.png) 27px 0 no-repeat }.vjs-default-skin.vjs-playing .vjs-play-control{ background : url (../images/bg_player_icon.png) -33px 0 no-repeat }.vjs-default-skin .vjs-playback-rate .vjs-playback-rate-value{ font-size : 1.5em ; line-height : 2 ; position : absolute ; top : 0 ; left : 0 ; width : 100% ; height : 100% ; text-align : center ; text-shadow : 1px 1px 1px rgba( 0 , 0 , 0 ,. 5 )}.vjs-default-skin .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content{ width : 4em ; left : -2em ; list-style : none }.vjs-default-skin .vjs-mute-control,.vjs-default-skin .vjs-volume-menu-button{ cursor : pointer ; float : right ; background : url (../images/bg_player_icon.png) -104px 0 no-repeat }.vjs-default-skin .vjs-mute-control.vjs-vol -0 ,.vjs-default-skin .vjs-volume-menu-button.vjs-vol -0 { background : url (../images/bg_player_icon.png) -164px 0 no-repeat }.vjs-default-skin .vjs-mute-control.vjs-vol -1: before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol -1: before{ background : url (../images/bg_player_icon.png) -104px 0 no-repeat }.vjs-default-skin .vjs-mute-control.vjs-vol -2: before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol -2: before{ background : url (../images/bg_player_icon.png) -104px 0 no-repeat }.vjs-default-skin .vjs-volume-control{ width : 5em ; float : right ; top : 2px ; top : 4px \ 0 }.vjs-default-skin .vjs-volume-bar{ width : 5em ; height :. 6em ; margin : 1.1em auto 0 }.vjs-default-skin .vjs-volume-menu-button .vjs-menu-content{ height : 2.9em }.vjs-default-skin .vjs-volume- level { position : absolute ; top : 0 ; left : 0 ; height :. 5em ; width : 100% ; background : url (../images/bg_player_icon_v.png) 0 -150px repeat-x }.vjs-default-skin .vjs-volume-bar .vjs-volume-handle{ width : 14px ; height : 14px ; left : 4.5em ; background : url (../images/bg_player_icon_v.png) 0 0 no-repeat ; top : -4px }.vjs-default-skin .vjs-volume-handle:before{ font-size :. 9em ; top :-. 2em ; left :-. 2em ; width : 1em ; height : 1em }.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content{ width : 6em ; left : -4em }.vjs-default-skin .vjs-progress-control{ position : absolute ; left : 0 ; right : 0 ; width : auto ; font-size :. 3em ; height : 6px ; top : -6px ;-webkit-transition: all . 4 s;-moz-transition: all . 4 s;-o-transition: all . 4 s;transition: all . 4 s}.vjs-default-skin:hover .vjs-progress-control{ font-size :. 9em ;-webkit-transition: all . 2 s;-moz-transition: all . 2 s;-o-transition: all . 2 s;transition: all . 2 s}.vjs-default-skin .vjs-progress-holder{ height : 100% }.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress{ position : absolute ; display : block ; height : 100% ; margin : 0 ; padding : 0 ; width : 0 ; left : 0 ; top : 0 }.vjs-default-skin .vjs-play-progress{ background : url (../images/bg_player_icon_v.png) 0 -150px repeat-x }.vjs-default-skin .vjs-load-progress{ background : url (../images/bg_player_icon_v.png) 0 -180px repeat-x }.vjs-default-skin.vjs-live .vjs-time-controls,.vjs-default-skin.vjs-live .vjs-time-divider,.vjs-default-skin.vjs-live .vjs-progress-control{ display : none }.vjs-default-skin.vjs-live .vjs-live-display{ display : block }.vjs-default-skin .vjs-live-display{ display : none ; font-size : 1em ; line-height : 3em }.vjs-default-skin .vjs-time-controls{ font-size : 1em ; line-height : 36px }.vjs-default-skin .vjs-current-time{ float : left }.vjs-default-skin .vjs-duration{ float : left }.vjs-default-skin .vjs-remaining-time{ display : none ; float : left }.vjs-default-skin .vjs-time-controls,.vjs-default-skin .vjs-duration,.vjs-default-skin .vjs-duration{ top : 3px \ 0 ; top : 1px }.vjs-time-divider{ float : left ; line-height : 36px }.vjs-default-skin .vjs-fullscreen-control{ width : 3.8em ; cursor : pointer ; float : right }.vjs-default-skin .vjs-fullscreen-control{ background : url (../images/bg_player_icon.png) -220px 0 no-repeat }.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control{ background : url (../images/bg_player_icon.png) -284px 0 no-repeat }.vjs-default-skin .vjs-big-play-button{ left : 50% ; top : 50% ; margin : -26.5px 0 0 -22.5px ; display : block ; z-index : 2 ; position : absolute ; width : 45px ; height : 53px ; cursor : pointer ;opacity: 1 ; background : url (../images/bg_player_play.png) left top no-repeat }.vjs-default-skin .vjs-mute-control.vjs-vol -0: hover,.vjs-default-skin .vjs-mute-control.vjs-vol -1: hover,.vjs-default-skin .vjs-mute-control.vjs-vol -2: hover,.vjs-default-skin .vjs-mute-control.vjs-vol -3: hover,.vjs-default-skin .vjs-mute-control:hover,.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:hover,.vjs-default-skin .vjs-fullscreen-control:hover,.vjs-default-skin.vjs-playing .vjs-play-control:hover,.vjs-default-skin .vjs-play-control:hover,.vjs-default-skin .vjs-big-play-button:hover{opacity:. 6 ;-moz-transition:opacity . 3 s ease;-webkit-transition:opacity . 3 s ease;-o-transition:opacity . 3 s ease;transition:opacity . 3 s ease}.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button{ left : 50% ; margin-left : -2.1em ; top : 50% ; margin-top : -1.4000000000000001em }.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button{ display : none }.vjs-default-skin.vjs-has-started .vjs-big-play-button{ display : none }.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button{ display : none }.vjs-default-skin:hover .vjs-big-play-button,.vjs-default-skin .vjs-big-play-button:focus{ outline : 0 ; border-color : #fff }.vjs-error .vjs-big-play-button{ display : none }.vjs-error-display{ display : none }.vjs-error .vjs-error-display{ display : block ; position : absolute ; left : 0 ; top : 0 ; width : 100% ; height : 100% }.vjs-error .vjs-error- display :before{ content : 'X' ; font-family : Arial ; font-size : 4em ; color : #666 ; line-height : 1 ; text-shadow :. 05em . 05em . 1em #000 ; text-align : center ; vertical-align : middle ; position : absolute ; top : 50% ; margin-top :-. 5em ; width : 100% }.vjs-error-display div{ position : absolute ; font-size : 1.4em ; text-align : center ; bottom : 1em ; right : 1em ; left : 1em }.vjs-error-display a,.vjs-error-display a:visited{ color : #F4A460 }.vjs-loading-spinner{ background : url (../images/bg_player_loading.png) no-repeat ; display : none ; position : absolute ; top : 50% ; left : 50% ; font-size : 4em ; line-height : 1 ; width : 61px ; height : 61px ; margin-left : -30.5px ; margin-top : -30.5px ;opacity:. 75 ;-webkit-animation:spin 1.5 s infinite linear;-moz-animation:spin 1.5 s infinite linear;-o-animation:spin 1.5 s infinite linear;animation:spin 1.5 s infinite linear}.video-js.vjs-error .vjs-loading-spinner{ display : none !important ;-webkit-animation: none ;-moz-animation: none ;-o-animation: none ;animation: none }@-moz-keyframes spin{ 0% {-moz-transform:rotate( 0 deg)} 100% {-moz-transform:rotate( 359 deg)}}@-webkit-keyframes spin{ 0% {-webkit-transform:rotate( 0 deg)} 100% {-webkit-transform:rotate( 359 deg)}}@-o-keyframes spin{ 0% {-o-transform:rotate( 0 deg)} 100% {-o-transform:rotate( 359 deg)}}@keyframes spin{ 0% {transform:rotate( 0 deg)} 100% {transform:rotate( 359 deg)}}.vjs-default-skin .vjs-menu-button{ float : right ; cursor : pointer }.vjs-default-skin .vjs-menu{ display : none ; position : absolute ; bottom : 0 ; left : 0 ; width : 0 ; height : 0 ; margin-bottom : 3em ; border-left : 2em solid transparent ; border-right : 2em solid transparent ; border-top : 1.55em solid #000 ; border-top-color :rgba( 7 , 40 , 50 ,. 5 )}.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content{ display : block ; padding : 0 ; margin : 0 ; position : absolute ; width : 10em ; bottom : 1.5em ; max-height : 15em ; overflow : auto ; left : -5em ; background-color : #07141e ; background-color :rgba( 7 , 20 , 30 ,. 7 );-webkit-box-shadow:-. 2em -. 2em . 3em rgba( 255 , 255 , 255 ,. 2 );-moz-box-shadow:-. 2em -. 2em . 3em rgba( 255 , 255 , 255 ,. 2 );box-shadow:-. 2em -. 2em . 3em rgba( 255 , 255 , 255 ,. 2 )}.vjs-default-skin .vjs-menu-button:hover .vjs-menu{ display : block }.vjs-default-skin .vjs-menu-button ul li{ list-style : none ; margin : 0 ; padding :. 3em 0 ; line-height : 1.4em ; font-size : 1.2em ; text-align : center ; text-transform : lowercase }.vjs-default-skin .vjs-menu-button ul li.vjs-selected{ background-color : #000 }.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{ outline : 0 ; color : #111 ; background-color : #fff ; background-color :rgba( 255 , 255 , 255 ,. 75 );-webkit-box-shadow: 0 0 1em #fff ;-moz-box-shadow: 0 0 1em #fff ;box-shadow: 0 0 1em #fff }.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{ text-align : center ; text-transform : uppercase ; font-size : 1em ; line-height : 2em ; padding : 0 ; margin : 0 0 . 3em ; font-weight : 700 ; cursor : default }.vjs-default-skin .vjs-subtitles-button:before{ content : "\e00c" }.vjs-default-skin .vjs-captions-button:before{ content : "\e008" }.vjs-default-skin .vjs-captions-button:focus .vjs-control- content :before,.vjs-default-skin .vjs-captions-button:hover .vjs-control- content :before{-webkit-box-shadow: 0 0 1em #fff ;-moz-box-shadow: 0 0 1em #fff ;box-shadow: 0 0 1em #fff }.video-js{ background-color : #000 ; position : relative ; padding : 0 ; font-size : 10px ; vertical-align : middle ; font-weight : 400 ; font-style : normal ; font-family : Arial , sans-serif ;-webkit-user-select: none ;-moz-user-select: none ;-ms-user-select: none ;user-select: none }.video-js .vjs-tech{ position : absolute ; top : 0 ; left : 0 ; width : 100% ; height : 100% }.video-js:-moz-full- screen { position : absolute }body.vjs-full-window{ padding : 0 ; margin : 0 ; height : 100% ;overflow-y: auto }.video-js.vjs-fullscreen{ position : fixed ; overflow : hidden ; z-index : 1000 ; left : 0 ; top : 0 ; bottom : 0 ; right : 0 ; width : 100% !important ; height : 100% !important ; _position : absolute }.video-js:-webkit-full- screen { width : 100% !important ; height : 100% !important }.video-js.vjs-fullscreen.vjs-user-inactive{ cursor : none }.vjs-poster{ background-repeat : no-repeat ; background-position : 50% 50% ;background- size :contain; cursor : pointer ; height : 100% ; margin : 0 ; padding : 0 ; position : relative ; width : 100% }.vjs-poster img{ display : block ; margin : 0 auto ; max-height : 100% ; padding : 0 ; width : 100% }.video-js.vjs-using-native-controls .vjs-poster{ display : none }.video-js .vjs-text-track-display{ text-align : center ; position : absolute ; bottom : 4em ; left : 1em ; right : 1em }.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{ bottom : 1em }.video-js .vjs-text-track{ display : none ; font-size : 1.4em ; text-align : center ; margin-bottom :. 1em ; background-color : #000 ; background-color :rgba( 0 , 0 , 0 ,. 5 )}.video-js .vjs-subtitles{ color : #fff }.video-js .vjs-captions{ color : #fc6 }.vjs-tt-cue{ display : block }.vjs-default-skin .vjs- hidden { display : none }.vjs-lock-showing{ display : block !important ;opacity: 1 ; visibility : visible }.vjs-no-js{ padding : 20px ; color : #ccc ; background-color : #333 ; font-size : 18px ; font-family : Arial , sans-serif ; text-align : center ; width : 300px ; height : 150px ; margin : 0 auto }.vjs-no-js a,.vjs-no-js a:visited{ color : #F4A460 }
|
样式中引用了几张图片,从锤子网http://www.smartisan.com/上下载就可以了
转载于:https://www.cnblogs.com/lpw94/p/4885183.html
video.js的简单用法相关推荐
- Video.js的简单使用介绍
2019独角兽企业重金招聘Python工程师标准>>> vedio.js 是一款视频播放插件,它会自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Fla ...
- Video.js简单使用
今天项目中需要跨浏览器地播放视频,在网上找了一下,找到了video.js,记录一下video.js的简单用法. <html> <head> ... <!-- 引入vide ...
- 插件用法--视频播放video.js
1.video.js 这篇里面全部覆盖,总结得真好. https://www.awaimai.com/2053.html 大坑--安卓手机上video层级最高,在播放视频后video尴尬地在页面所有元 ...
- js-视频播放插件Video.js简单使用
插件下载地址: http://www.jq22.com/jquery-info404 Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 ...
- 【VideoJs】初识videojs video.js 视频播放器的基本使用 videojs基础用法 videojs视频播放器 vue3中使用videojs
videojs介绍 免费,开源 插件多 可自定义 [推] 虽然,但是Videojs算好了,但我觉得有点杂,特别是文档与插件,且自定义插件有点困难,也可能是我比较菜吧 相比之下,我还是强烈推荐 [Xgp ...
- 免费视频播放器Video.js介绍
原文地址:http://www.cnblogs.com/afrog/p/6689179.html Video.js是一款web视频播放器,支持html5和flash两种播放方式.更多关于video.j ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器前端源码重构(四)- webpack + video.js 打造流媒体服务器前端
EasyPlayer播放器是基于EasyDSS流媒体服务器视频强大的后台管理能力,提供视频点播和直播播放能力的强大播放载体.流畅稳定的播放性能,集广告植入.数据监测等功能于一身,为开发者提供端到端的一 ...
- video.min.js php,使用flv.js与video.js做一个视频直播效果
这次给大家带来使用flv.js与video.js做一个视频直播效果,使用flv.js与video.js做出视频直播效果的注意事项有哪些,下面就是实战案例,一起来看一下. 环境配置 首先运行livego ...
- html.renderaction 控制器,Html.RenderAction简单用法
CATransition(os开发之画面切换) 的简单用法 CATransition 的简单用法 //引进CATransition 时要添加包"QuartzCore.framework&qu ...
- electron 解压zip_node.js实现简单的压缩/解压缩功能示例
本文实例讲述了node.js实现简单的压缩/解压缩功能.分享给大家供大家参考,具体如下: 压缩的例子 非常简单的几行代码,就完成了本地文件的gzip压缩. var fs = require('fs') ...
最新文章
- idea php 断点设置,php - xdebug在IntelliJ Idea中跳过断点 - SO中文参考 - www.soinside.com...
- 河北省内计算机对口学校有哪些专业,河北省对口单招有哪些高校
- 移植wpa_supplicant 2.2问题
- 用sqoop将mysql的数据导入到hive表中,原理分析
- 算术的c语言程序设计,C 程序设计:变量与算术表达式
- c 字符串数组_C语言探索之旅 | 第二部分第四课:字符串
- jquery中的html代码、文本以及值
- 异速联服务器配置系统管理员,异速联V6.2.4.0正式版全新发布
- Java基础案例教程_Java基础案例教程答案
- 记2021沙尘漫天的春
- php中的refresh,PHP mysqli_refresh() 函数用法及示例
- Dubbo扩展点注解之@Adaptive
- 阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
- mc服务器物品给予,我的世界网易版给予物品指令1.12谢谢
- IP-guard桌面终端安全解决方案
- 快慢指针的概念及其应用
- NOI的1.5.39与7无关的数
- 全国青少年信息技术与计算机思维能力,全国信息技术和青少年计算思维评测 (编程基础组一级考试) 样题...
- AD---通过组策略推送软件给客户端
- JS中创建对象:三种方式(pink)
热门文章
- 激光导航AGV的停车精度受环境变化的影响有多大?
- VTracer - 将图片转化为矢量 SVG 图形的免费开源工具
- 企业号第三方服务商可信域名配置
- nginx下载安装,以及简单配置
- HEVC与AVC的区别与联系(十二)
- 使用U盘重装MacBook Air时用到的工具和镜像
- 腐蚀rust服务器命令_服务器指令_腐蚀rust服务器命令一览 腐蚀rust有哪些服务器命令_3DM单机...
- FPGA verilog 临近插值任意比例视频缩放代码
- 互联网大佬“舌战”996:马云、刘强东、周鸿祎、张朝阳、李国庆,你站谁?
- 看清我辈基本盘!罗振宇2020跨年演讲全文来了(未删减)