网页中插入视频的方案

今天讨论网页中插入视频的方案,咱不讨论video标签的使用方法,video标签比较兼容的写法为:

 1 <video width="800" height="">
 2         <source src="myvideo.mp4" type="video/mp4"></source>
 3         <source src="myvideo.ogv" type="video/ogg"></source>
 4         <source src="myvideo.webm" type="video/webm"></source>
 5         <object width="" height="" type="application/x-shockwave-flash" data="myvideo.swf">
 6             <param name="movie" value="myvideo.swf" />
 7             <param name="flashvars" value="autostart=true&amp;file=myvideo.swf" />
 8         </object>
 9         当前浏览器不支持 video直接播放,点击这里下载视频: <a href="myvideo.webm">下载视频</a>
10     </video>

但是一般不会同一个视频生成MP4、ogg、webm和swf(flash)四种格式的视频,原因是太占用时间了。

讨论的第一种方案是:将视频上传到爱奇艺、优酷和腾讯等第三方视频网站上,在使用第三方网站提供的代码(在视频下方的“分享”按钮中即可找到),具体测试代码为:

 1 <!DOCTYPE html>
 2 <html lang="zh">
 3 
 4     <head>
 5         <meta charset="UTF-8" />
 6         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7         <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 8         <title>网页中插入视频的方法</title>
 9         <style type="text/css">
10             * {
11                 margin: 0;
12                 padding: 0;
13             }
14             
15             body {
16                 text-align: center;
17             }
18             
19             div {
20                 font-size: 18px;
21                 color: #2E8DED;
22                 margin-top: 20px;
23             }
24         </style>
25     </head>
26 
27     <body>
28         <!--爱奇艺视频(无通用代码) 只支持PC端 IE8以上都可以-->
29         <div>
30             爱奇艺视频(无通用代码) 只支持PC端 IE8以上都可以
31         </div>
32         <embed src="http://player.video.qiyi.com/8b89d9c3ec3535c93ceaded663cc91c2/0/0/v_19rr7zq9xw.swf-albumId=715375800-tvId=715375800-isPurchase=0-cnId=25" allowFullScreen="true" quality="high" width="480" height="350" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>
33         <div>
34             腾讯视频 全部支持 IE8以上都可以
35         </div>
36         <!--腾讯视频 全部支持 IE8以上都可以-->
37         <iframe frameborder="0" width="640" height="498" src="https://v.qq.com/iframe/player.html?vid=p0521h3uu1a&tiny=0&auto=0" allowfullscreen></iframe>
38         <div>
39             优酷视频 全部支持 IE8以上都可以
40         </div>
41         <!--优酷视频 全部支持 IE8以上都可以-->
42         <iframe height=498 width=510 src='http://player.youku.com/embed/XMjg2OTA1NDc5Mg==' frameborder=0 'allowfullscreen'></iframe>
43     </body>
44 
45 </html>

网页显示效果为:

需要说明的是:在第三方视频网站上分享代码中选择通用的代码,这样可以使得PC端和移动端均能良好的展现视频。

讨论的第二种方案是:使用ckplayer插件。

ckplayer插件的官网为:http://www.ckplayer.com/

官网上有在线配置功能,根据自己的需要进行配置,其中一个比较好测试代码为ckplayer调用html5播放器,

 1 <!DOCTYPE html>
 2 <html lang="zh">
 3 
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6         <title>ckplayer调用html5播放器</title>
 7     </head>
 8 
 9     <body>
10         <div id="a1"></div>
11         <!--引入ckplayer.js-->
12         <script type="text/javascript" src="ckplayer/ckplayer.js" charset="utf-8"></script>
13         <script type="text/javascript">
14             var flashvars = {
15                 //p参数为是否自动播放,可以为 1 或 0,默认为 1,参数不为 1 时播放器加载完成后均为暂停状态。
16                 p: 0,
17                 //e为视频结束后的动作,0 停止播放并发送js,1 是不发送 js 且重新循环播放,2 停止播放,默认为2。
18                 e: 1,
19                 //i为视频播放器初始图片地址,即封面图片,默认为空。
20                 i: 'http://www.ckplayer.com/static/images/cqdw.jpg'
21             };
22             //http://img.ksbbs.com/asset/Mon_1605/0ec8cc80112a2d6.mp4 为视频地址
23             var video = ['http://img.ksbbs.com/asset/Mon_1605/0ec8cc80112a2d6.mp4->video/mp4'];
24             var support = ['all'];
25             //第一个100% 为宽度同样可以设置为像素,第二个100% 为高度同样可以设置为像素
26             CKobject.embedHTML5('a1', 'ckplayer_a1', '100%', '100%', video, flashvars, support);
27         </script>
28     </body>
29 
30 </html>

PC效果为:

移动端效果为:

说明:视频只需要使用目前浏览器支持最多的MP4格式即可,需要处理的视频格式少。其次是使用ckplayer插件可以比较完美的兼容PC和移动端浏览器(经测试IE8 视频播放不了)。

2017-08-08更新

ckplayer插件的api地址为:http://www.ckplayer.com/manual/13/54.htm

使用方法:

CKobject.getObjectById('ckplayer_a1').videoPlay();//播放视频

总结:

优先建议将视频上传到第三方视频网站,兼容性好,同时视频加载快,不会占用网站服务器的带宽资源。

其次使用ckplayer插件在网页中插入本地视频。

更新(2017-07-10):

方案一的实例代码:

 1 <!DOCTYPE html>
 2 <html lang="zh">
 3 
 4     <head>
 5         <meta charset="UTF-8" />
 6         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7         <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 8         <title>网页中插入视频的方法</title>
 9         <style type="text/css">
10             * {
11                 margin: 0;
12                 padding: 0;
13             }
14             
15             body {
16                 text-align: center;
17             }
18         </style>
19     </head>
20 
21     <body>
22         <iframe frameborder="0" width="600" height="498" src="https://v.qq.com/iframe/player.html?vid=t0523oagtrj&tiny=0&auto=0" allowfullscreen></iframe>
23         <!--<embed src="https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=r03996hk7rg&auto=0" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>-->
24 
25     </body>
26 
27 </html>

效果如下图所示:

或者使用embed标签,见实例代码:

 1 <!DOCTYPE html>
 2 <html lang="zh">
 3 
 4     <head>
 5         <meta charset="UTF-8" />
 6         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7         <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 8         <title>网页中插入视频的方法</title>
 9         <style type="text/css">
10             * {
11                 margin: 0;
12                 padding: 0;
13             }
14             
15             body {
16                 text-align: center;
17             }
18         </style>
19     </head>
20 
21     <body>
22         <!--<iframe frameborder="0" width="600" height="498" src="https://v.qq.com/iframe/player.html?vid=t0523oagtrj&tiny=0&auto=0" allowfullscreen></iframe>-->
23         <embed src="https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=r03996hk7rg&auto=0" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>
24 
25     </body>
26 
27 </html>

效果:

但是使用embed标签在移动端无法显示视频。

综合以上2个代码,我们可以对浏览器进行判断,在PC点使用embed标签,移动端使用iframe。具体见以下代码:

 1 <!DOCTYPE html>
 2 <html lang="zh">
 3 
 4     <head>
 5         <meta charset="UTF-8" />
 6         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7         <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 8         <title>网页中插入视频的方法</title>
 9         <style type="text/css">
10             * {
11                 margin: 0;
12                 padding: 0;
13             }
14             
15             body {
16                 text-align: center;
17             }
18         </style>
19     </head>
20 
21     <body>
22         <iframe frameborder="0" width="600" height="498" src="https://v.qq.com/iframe/player.html?vid=t0523oagtrj&tiny=0&auto=0" allowfullscreen id="iframe"></iframe>
23         <embed src="https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=r03996hk7rg&auto=0" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" id="embed"></embed>
24         <script type="text/javascript">
25             var iframe = document.getElementById('iframe'),
26                 embed = document.getElementById('embed');
27             iframe.style.display = 'none';
28             embed.style.display = 'none';
29             var userAgentInfo = navigator.userAgent;
30             var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");
31             var flag = false;
32             var v = 0
33             for(v = 0; v < Agents.length; v++) {
34                 if(userAgentInfo.indexOf(Agents[v]) > 0) {
35                     flag = true;
36                     break;
37                 }
38             }
39             //检测浏览器为移动端浏览器
40             if(flag) {
41                 
42                 iframe.style.display = '';
43                 embed.style.display = 'none';
44             } else {
45                 iframe.style.display = 'none';
46                 embed.style.display = '';
47             }
48         </script>
49     </body>
50 
51 </html>
原文地址:https://www.cnblogs.com/mengfangui/p/7122130.html