技术文摘

Dplayer前置广告视频,暂停广告,与试看功能

作者:雨祺   发表于:
浏览:342次    字数:5415  原创
级别: 站长   总稿: 69 篇,  月稿: 0
DPlayer 是一个支持弹幕的 HTML5 视频播放器。支持 Bilibili 视频和 danmaku,支持HLS,FLV,MPEG DASH,WebTorrent以及其他视频格式,支持截屏、热键、切换清晰度以及字幕等。在使用Dplayer播放视频时有时候,我们可能会用到视频的前置广告视频啥的,或是要先放个自个的品牌宣传视频,然后再进行播放正片。

今天就介绍下吧。

1,引入JQ,这个很重要

2,暂停贴片广告

3,前置视频贴片广告

4,前置HTML贴片广告

5,整合

CSS部分:

  1. <style type="text/css"
  2. html,body{height:100%;margin:0;padding:0;overflow:hidden;text-align:center;background:#181818;} 
  3. *{margin:0;border:0;padding:0;text-decoration:none} 
  4. #dplayer{height:100%;} 
  5. .dplayer-logo{max-width: 150px;max-height: 50px;left: auto;right: 5%;top: 5%;} 
  6. #ad{position: absolute;z-index: 99999;width:100%;height:100%} 
  7. .closeclick{display: inline-block;width: 100px;height: 35px;line-height: 35px;text-align: center;font-size: 14px;border-radius: 22px;margin: 0px 10px;color: #2082B3;overflow: hidden;box-shadow: 0px 2px 3px rgba(0,0,0,.3);background: #fff;position: absolute; z-index: 9999;top:20px;right: 35px;} 
  8. .dplayer_nobuy_tips{position: absolute;z-index: 9;color: #fff;font-size: 14px;height: 30px;line-height: 30px;background-color: rgba(0, 0, 0, 0.5);width: 100%;text-align: center;margin: 0 20px;} 
  9. .dplayer_buybox{position: absolute;top: 0;align-items: center;width: 100%;height: 100%;background: rgba(0, 0, 0, 0.8);z-index: 998;color: #fff;text-align: center;display: flex;font-size: 14px;} 
  10. .dplayer_buybox-content{width:100%;height: 100%;background: rgba(0, 0, 0, 0.3);} 
  11. .dplayer_buybox-tipsbtn {background: #f60;padding: 5px 15px;border-radius: 2px;cursor: pointer;color: #fff;margin-top: 10px;display: inline-block;} 
  12. .dplayer_buybox-content>span {margin: 0 5px;color: #f60;} 
  13. .dplayer_buybox-tips {position: absolute;top:50%;left:50%;width:100%;transform:translate(-50%,-100%);text-align: center;color: #fff;font-size: 14px;line-height: 30px;text-align: center;} 
  14. </style> 

HTML部分,放在播放 <div id="dplayer"></div> 上方

  1. <div id="dplayer_nobuybox"><div class="dplayer_nobuy_tips">【付费视频】您可以免费试看20秒,购买后可观看全部。</div></div> 
  2. <div id="ad" > 
  3. <iframe id="player_pread" class="embed-responsive-item" src="https://www.meiweny.cn/d/file/sanwen/tianyuan/2021-08-25/72cb5c72cbdc88fd0c5bebe92badc707.jpg" frameborder="0" scrolling="no" allowtransparency="true" style="position:absolute;z-index:2;top:0px;left:0px;width:100%;height:100%"></iframe> 
  4. <a class="closeclick" href="javascript:;"  onclick="closeclick()">跳过<em id="adindextime"></em></a> 
  5. </div> 
  6. <div id="dplayer_buybox" class="dplayer_buybox" style="display:none;">        
  7.  <div class="dplayer_buybox-content"
  8.  <div class="dplayer_buybox-tips">该视频需要<span>付费购买</span>才可以观看完整版<br> 
  9.  <m class="dplayer_buybox-tipsbtn">购买</m> 
  10. </div> 
  11.  </div> 
  12. </div> 
var dp = new DPlayer({ 上方放入
  1. var adpreh_time = "20";//前置广告显示时间 
  2. var shikan_time = "20";//试看时间 
  3. var adpau = 'https://www.meiweny.cn/d/file/sanwen/tianyuan/2021-08-25/72cb5c72cbdc88fd0c5bebe92badc707.jpg';//暂停广告 
  4. function remove(){ 
  5. $('#player_pause').remove(); 
  6. function pause(){ 
  7. $width = $('#dplayer').width()/2; 
  8. $height = $('#dplayer').height()/2; 
  9. $top = $('#dplayer').height()/4; 
  10. $left = $('#dplayer').width()/4; 
  11. $('#dplayer').before('<iframe id="player_pause" class="embed-responsive-item" src="'+ adpau +'" frameborder="0" scrolling="no" allowtransparency="true" style="position:absolute;z-index:2;top:'+$top+'px;left:'+$left+'px;width:'+$width+'px;height:'+$height+'px"></iframe>'); 
var dp = new DPlayer({//省略播放器配置参数});下方放入
  1. dp.on('timeupdate'function () { 
  2. if (dp.dplayer.currentTime > shikan_time) {//视频时间,单位’秒‘,建议减1秒 
  3. dp.pause(); 
  4. dp.dplayer.currentTime = 0; 
  5. $("#dplayer_buybox").show(); 
  6. $('#player_pause').remove(); 
  7. $('#dplayer_nobuybox').remove();             
  8. }); 
  9. dp.on('pause'function () { 
  10. pause(); 
  11. }) 
  12. dp.on('play'function () { 
  13. remove(); 
  14. });      
  15. function closeclick() { 
  16. $('#ad').remove(); 
  17. $("#player_predplayer").show(); 
  18. dp.play(); 
  19. function clickclose() { 
  20. $('#ad').remove() 
  21. $("#player_predplayer").show(); 
  22. dp.play(); 
  23. $(function() {      
  24. $("#player_pread").css('width',$('#ad').width()/1.3); 
  25. $("#player_pread").css('height',$('#ad').height()/1.3); 
  26. $("#player_pread").css('top',$('#ad').height()/9); 
  27. $("#player_pread").css('left',$('#ad').width()/9);  
  28. var i = adpreh_time;//前置HTML广告时间 
  29. setTimeout(function() { 
  30. closeclick(); 
  31. }, i * 1000); 
  32. after(); 
  33. function after() { 
  34. if (i == 0) { 
  35. $("#adindextime").empty().append(i); 
  36. setTimeout(function() { 
  37. after(); 
  38. }, 1000); 
  39. }  
  40. else { 
  41. $("#adindextime").empty().append(i); 
  42. i = i - 1; 
  43. setTimeout(function() { 
  44. after(); 
  45. }, 1000); 
  46. }  
  47. }); 
最后附上整合版
  1. <!DOCTYPE html> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <meta name="referrer" content="no-referrer" /> 
  6. <meta http-equiv="Access-Control-Allow-Origin" content="*" /> 
  7. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />  
  8. <title>播放器</title> 
  9. <link href="https://www.meiweny.cn/e/m/DPlayer/DPlayer.min.css" rel="stylesheet"
  10. <script type="text/javascript" src="https://www.meiweny.cn/e/m/DPlayer/flv.js"></script> 
  11. <script type="text/javascript" src="https://www.meiweny.cn/e/m/DPlayer/hls.js"></script> 
  12. <script src="https://cdn.jsdelivr.net/npm/cdnbye@latest"></script> 
  13. <script src="https://www.meiweny.cn/e/m/DPlayer/DPlayer.min.js"></script> 
  14. <script type="text/javascript" src="https://www.meiweny.cn/e/m/DPlayer/md5.min.js"></script> 
  15. <script type="text/javascript" src="https://www.meiweny.cn/e/m//dasang/js/jquery.js"></script> 
  16. <style type="text/css"
  17. html,body{height:100%;margin:0;padding:0;overflow:hidden;text-align:center;background:#181818;} 
  18. *{margin:0;border:0;padding:0;text-decoration:none} 
  19. #dplayer{height:100%;} 
  20. .dplayer-logo{max-width: 150px;max-height: 50px;left: auto;right: 5%;top: 5%;} 
  21. #ad{position: absolute;z-index: 99999;width:100%;height:100%} 
  22. .closeclick{display: inline-block;width: 100px;height: 35px;line-height: 35px;text-align: center;font-size: 14px;border-radius: 22px;margin: 0px 10px;color: #2082B3;overflow: hidden;box-shadow: 0px 2px 3px rgba(0,0,0,.3);background: #fff;position: absolute; z-index: 9999;top:20px;right: 35px;} 
  23. .dplayer_nobuy_tips{position: absolute;z-index: 9;color: #fff;font-size: 14px;height: 30px;line-height: 30px;background-color: rgba(0, 0, 0, 0.5);width: 100%;text-align: center;margin: 0 20px;} 
  24. .dplayer_buybox{position: absolute;top: 0;align-items: center;width: 100%;height: 100%;background: rgba(0, 0, 0, 0.8);z-index: 998;color: #fff;text-align: center;display: flex;font-size: 14px;} 
  25. .dplayer_buybox-content{width:100%;height: 100%;background: rgba(0, 0, 0, 0.3);} 
  26. .dplayer_buybox-tipsbtn {background: #f60;padding: 5px 15px;border-radius: 2px;cursor: pointer;color: #fff;margin-top: 10px;display: inline-block;} 
  27. .dplayer_buybox-content>span {margin: 0 5px;color: #f60;} 
  28. .dplayer_buybox-tips {position: absolute;top:50%;left:50%;width:100%;transform:translate(-50%,-100%);text-align: center;color: #fff;font-size: 14px;line-height: 30px;text-align: center;} 
  29. </style> 
  30. <div id="dplayer_nobuybox"><div class="dplayer_nobuy_tips">【付费视频】您可以免费试看20秒,购买后可观看全部。</div></div> 
  31. <div id="ad" > 
  32. <iframe id="player_pread" class="embed-responsive-item" src="https://www.meiweny.cn/d/file/sanwen/tianyuan/2021-08-25/72cb5c72cbdc88fd0c5bebe92badc707.jpg" frameborder="0" scrolling="no" allowtransparency="true" style="position:absolute;z-index:2;top:0px;left:0px;width:100%;height:100%"></iframe> 
  33. <a class="closeclick" href="javascript:;"  onclick="closeclick()">跳过<em id="adindextime"></em></a> 
  34. </div> 
  35. <div id="dplayer_buybox" class="dplayer_buybox" style="display:none;"
  36.            
  37.         <div class="dplayer_buybox-content"
  38.                 <div class="dplayer_buybox-tips">该视频需要<span>付费购买</span>才可以观看完整版<br> 
  39.                         <m class="dplayer_buybox-tipsbtn">购买</m> 
  40.                 </div> 
  41.         </div> 
  42. </div> 
  43. <div id="dplayer"></div> 
  44.    
  45.    
  46. <script type="text/javascript"
  47. var adpreh_time = "20";//前置广告显示时间 
  48. var shikan_time = "20";//试看时间 
  49. var adpau = 'https://www.meiweny.cn/d/file/sanwen/tianyuan/2021-08-25/72cb5c72cbdc88fd0c5bebe92badc707.jpg';//暂停广告 
  50. function remove(){ 
  51. $('#player_pause').remove(); 
  52. function pause(){ 
  53. $width = $('#dplayer').width()/2; 
  54. $height = $('#dplayer').height()/2; 
  55. $top = $('#dplayer').height()/4; 
  56. $left = $('#dplayer').width()/4; 
  57. $('#dplayer').before('<iframe id="player_pause" class="embed-responsive-item" src="'+ adpau +'" frameborder="0" scrolling="no" allowtransparency="true" style="position:absolute;z-index:2;top:'+$top+'px;left:'+$left+'px;width:'+$width+'px;height:'+$height+'px"></iframe>'); 
  58.    
  59.  
  60.  
  61.  
  62.      
  63. var dp = new DPlayer({ 
  64.     container: document.getElementById('dplayer'), 
  65.     //screenshot: true,//截屏 
  66.     theme: '#4C8FE8',//进度条颜色 
  67.     volume: 1.0,//音量 
  68.     loop: true,//循环 
  69.     logo: '',//LOGO 
  70.     //autoplay: true,//自动播放 
  71.     video: { 
  72.         quality: [{ 
  73.             name: '高清'
  74.             url:'https://vod.cdbaiyou.com/20210721/km18yXmO/1059kb/hls/index.m3u8'
  75.             //type: 'normal' 
  76.         }], 
  77.               pic: 'https://ww3.sinaimg.cn/large/0060lm7Tly1fke6b991zzg30jq0dwaar.gif'
  78.         defaultQuality: 0 
  79.     }, 
  80.  
  81. }); 
  82.  
  83.      
  84.  
  85. dp.on('timeupdate'function () { 
  86. if (dp.dplayer.currentTime > shikan_time) {//视频时间,单位’秒‘,建议减1秒 
  87. dp.pause(); 
  88. dp.dplayer.currentTime = 0; 
  89. $("#dplayer_buybox").show(); 
  90. $('#player_pause').remove(); 
  91. $('#dplayer_nobuybox').remove();             
  92. }); 
  93. dp.on('pause'function () { 
  94. pause(); 
  95. }) 
  96. dp.on('play'function () { 
  97. remove(); 
  98. });      
  99. function closeclick() { 
  100. $('#ad').remove(); 
  101. $("#player_predplayer").show(); 
  102. dp.play(); 
  103. function clickclose() { 
  104. $('#ad').remove() 
  105. $("#player_predplayer").show(); 
  106. dp.play(); 
  107. $(function() {      
  108. $("#player_pread").css('width',$('#ad').width()/1.3); 
  109. $("#player_pread").css('height',$('#ad').height()/1.3); 
  110. $("#player_pread").css('top',$('#ad').height()/9); 
  111. $("#player_pread").css('left',$('#ad').width()/9);  
  112. var i = adpreh_time;//前置HTML广告时间 
  113. setTimeout(function() { 
  114. closeclick(); 
  115. }, i * 1000); 
  116. after(); 
  117. function after() { 
  118. if (i == 0) { 
  119. $("#adindextime").empty().append(i); 
  120. setTimeout(function() { 
  121. after(); 
  122. }, 1000); 
  123. }  
  124. else { 
  125. $("#adindextime").empty().append(i); 
  126. i = i - 1; 
  127. setTimeout(function() { 
  128. after(); 
  129. }, 1000); 
  130. }  
  131. }); 
  132. </script> 
  133.   </body> 
  134. </html> 
DPlayer 是一个支持弹幕的 HTML5 视频播放器。支持 Bilibili 视频和 danmaku,支持HLS,FLV,MPEG DASH,WebTorrent以及其他视频格式,支持截屏、热键、切换清晰度以及字幕等。更多相关二次开发敬请期待!

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: 视频 广告 Dplayer

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿