找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

不是太完善的视频全屏播放

[复制链接]

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 10:08:58 | 显示全部楼层 IP:湖北武汉
老谟深虑 发表于 2024-1-14 08:56
请老师把这个代码音画弄成全屏。谢谢!

老漠版主的超宽音画帖

这帖不算太宽

210

主题

6096

回帖

4万

积分

版主

积分
45598
发表于 2024-1-14 10:24:09 | 显示全部楼层 IP:美国
这是真正的全屏,看着很舒服,为老师点赞!

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 10:26:25 | 显示全部楼层 IP:湖北武汉
老钟 发表于 2024-1-14 10:24
这是真正的全屏,看着很舒服,为老师点赞!

谢谢支持鼓励!

上午好!

385

主题

1万

回帖

6万

积分

超级版主

积分
63127
发表于 2024-1-14 10:45:18 | 显示全部楼层 IP:山东
欣赏大银幕音画好作品!

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 10:46:43 | 显示全部楼层 IP:湖北武汉
月婵 发表于 2024-1-14 10:45
欣赏大银幕音画好作品!

谢谢支持鼓励!

上午好!

119

主题

6091

回帖

2万

积分

蓬莱仙人

积分
26400
发表于 2024-1-14 10:51:09 | 显示全部楼层 IP:河北秦皇岛
起个网名好难 发表于 2024-1-14 09:13
8# 90%, 10# 80%, 15# 70%

不大点都不好意思说是全屏

很有特色的。

313

主题

1万

回帖

7万

积分

超级版主

积分
74707
发表于 2024-1-14 11:20:06 | 显示全部楼层 IP:亚太地区
起个网名好难 发表于 2024-1-14 09:16
这帖我发出后要审核,等审核完后再根据情况调整。

音画帖应称作超宽帖而不是全屏帖。 ...

       我去审核!

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 11:23:45 | 显示全部楼层 IP:湖北武汉

我已另发帖了,原来发在这里的也审核通过了不过我又给删了。

313

主题

1万

回帖

7万

积分

超级版主

积分
74707
发表于 2024-1-14 11:24:31 | 显示全部楼层 IP:亚太地区
本帖最后由 老谟深虑 于 2024-1-14 11:57 编辑
起个网名好难 发表于 2024-1-14 10:08
老漠版主的超宽音画帖

这帖不算太宽

       老师太厉害了,非常感谢。请老师明示,代码里哪个地方改变了,我以后发别的代码音画时将如何像这个成为超宽音画帖?谢谢!

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 11:32:00 | 显示全部楼层 IP:湖北武汉
1 外面加了个壳, 和里面的一样大


<div style="width:1168px;height:640px;position:absolute;margin:150px -200px;z-index:99999;">

2. 末尾加了 <div style="width:100%;height:960px;position:relative;"></div> 避免下面按钮被遮挡住。
代码附后
  1. <style>
  2. #papa {
  3.         width: 100%;
  4.         height: 100%;
  5. background:#000000 url('https://')no-repeat center / cover;
  6. box-shadow: 0px 0px 0px 2px #cccccc, 0px 0px 0px 8px #DC143C;
  7.         position: relative;overflow: hidden;
  8.         z-index: 12345;        
  9. }

  10. #vid { position: absolute; width: 50%; height: 50%; top:12.5%; left:49%;object-fit: cover; pointer-events: none;  opacity: 1;z-index: 1;-webkit-mask-image: radial-gra**nt(black 25% ,transparent 70%); }
  11. #dt{position: absolute;top:0%; left:0%;width: 100%;height:100%;z-index:-1;}

  12. #papa:hover #mplayer { transition: .7s; opacity: .9; }
  13. #mplayer {z-index: 80;
  14.         position: absolute;
  15.         top:94.5%; left:50.5%;
  16.         bottom: 25px;
  17.         width: 20px;
  18.         height: 15px;background:#333333;
  19.         border: 0px solid #000000;
  20.         border-radius: 20%;
  21.         opacity: 1;
  22.         transition: .7s;
  23.         display: grid;
  24.         place-items: center;
  25.         --disp1: 0; --disp2: 1;
  26. }
  27. #mplayer::before, #mplayer::after {
  28.         position: absolute;
  29.         content: '';
  30.         border-style: solid;
  31.         border-color: #ffffff;
  32.         cursor: pointer;
  33.         transition: .4s;
  34. }
  35. #mplayer::before {
  36.         width: 0;
  37.         height: 0;
  38.         left: 6px;
  39.         border-width: 5px 8px;
  40.         border-color: transparent transparent transparent #ffffff;
  41.         opacity: var(--disp1);
  42. }
  43. #mplayer::after {
  44.         width: 1px;
  45.         height: 10px;
  46.         border-width: 0 2px 0 2px;
  47.         opacity: var(--disp2);
  48. }
  49. @keyframes opa { to {opacity: 1;} }
  50. #tmsg {position: absolute;z-index: 91;
  51.         font: normal 10px sans-serif;
  52.         color: #00ff00;
  53.          top:68%;
  54.         left:24%;}

  55. #prog {position: absolute;z-index: 91;
  56.         width: 9%;
  57.         height: 0.6%;
  58.         cursor: pointer;
  59.          top:92.4%;

  60. box-shadow: 0px 0px 1px 1px #cccccc;
  61.          left:47%;border-radius: 0px;}
  62. #musickrc{width:45%;line-height:30px;position: absolute;position: absolute;left:50%;top:65%;z-index: 11;filter:drop-shadow(#ffffff 1px 0 0)drop-shadow(#ffffff 0 1px 0)drop-shadow(#ffffff -1px 0 0) drop-shadow(#ffffff 0 -1px  0);}
  63. #musickrc span {display:block;text-align:center; }
  64. #bt{ width: 15%; height: 50px;  color: #ffffff; position: absolute; left:46%;top:78%;  font-size: 12px; font-family:仿宋;z-index: 21;  }
  65. </style>
  66. <div id="outBlk" style="width:1168px;height:640px;position:absolute;margin:150px -200px;z-index:99999;">
  67. <div id="papa">
  68. <div id="dt"><img id="Img" src="http://chuangshicdn.data.mvbox.cn/album/24/01/08/24010814022029905152.gif" width="100%" height="100%"></div>

  69. <video id="vid"  src="https://www.kumeiwp.com/sub/filestores/2024/01/07/3e99e4046e8213665e359900e82b002b.mp4" muted autoplay loop></video>
  70. <div id="tmsg">00:00 | 00:00</div>
  71. <div  id="prog"></div>
  72. <div id="mplayer"></div>
  73. <div  id="musickrc" >
  74. <p id="musickrc01"style="color:#880000; text-align:left;font-weight: ;font-family:华文隶书;font-size: 30px;" ></P>
  75. <P id="musickrc02"style="color:#000080;text-align:right;font-weight: ;font-family:华文隶书;font-size: 30px;"></P>
  76. </div>
  77. <div id="bt">爱到天荒地老 - 唐艺</div>
  78. </div>
  79. <audio id="aud" src="https://www.qqmc.com/mp3/music285455251.mp3" loop autoplay></audio>
  80. </div>
  81. <div style="width:100%;height:960px;position:relative;"></div>

  82. <script >
  83. var songkrc =`[00:00]走心入梦的人(DJ 默涵版)
  84. [00:04]作词:金艾娜
  85. [00:08]作曲:钰柃
  86. [00:13]演唱:金艾娜
  87. [00:17]如果没有一往情深
  88. [00:20]怎会懂得缘分捉弄人
  89. [00:24]我把你的情当了真
  90. [00:28]只想与你牵手在红尘
  91. [00:32]一颗心早为你失了魂
  92. [00:36]也曾为你把爱封存
  93. [00:39]看到你含情的眼神
  94. [00:43]好想给你一个拥吻
  95. [00:47]走了心入了梦的人
  96. [00:51]原来爱得如此认真
  97. [00:54]明知道相思扰乱心神
  98. [00:58]偏偏坠入相思门
  99. [01:02]走了心入了梦的人
  100. [01:06]可知我愿为你倾心
  101. [01:09]我相信爱能感天动地
  102. [01:13]缘分注定我们的今生
  103. [01:32]如果没有一往情深
  104. [01:36]怎会懂得缘分捉弄人
  105. [01:39]我把你的情当了真
  106. [01:43]只想与你牵手在红尘
  107. [01:47]一颗心早为你失了魂
  108. [01:51]也曾为你把爱封存
  109. [01:54]看到你含情的眼神
  110. [01:58]好想给你一个拥吻
  111. [02:02]走了心入了梦的人
  112. [02:06]原来爱得如此认真
  113. [02:09]明知道相思扰乱心神
  114. [02:13]偏偏坠入相思门
  115. [02:17]走了心入了梦的人
  116. [02:21]可知我愿为你倾心
  117. [02:24]我相信爱能感天动地
  118. [02:28]缘分注定我们的今生
  119. [02:32]如果没有一往情深
  120. [02:36]怎会懂得缘分捉弄人
  121. [02:39]我把你的情当了真
  122. [02:43]只想与你牵手在红尘
  123. [02:47]一颗心早为你失了魂
  124. [02:51]也曾为你把爱封存
  125. [02:54]看到你含情的眼神
  126. [02:58]好想给你一个拥吻
  127. [03:02]走了心入了梦的人
  128. [03:06]原来爱得如此认真
  129. [03:09]明知道相思扰乱心神
  130. [03:13]偏偏坠入相思门
  131. [03:17]走了心入了梦的人
  132. [03:21]可知我愿为你倾心
  133. [03:24]我相信爱能感天动地
  134. [03:28]缘分注定我们的今生
  135. [03:32]我相信爱能感天动地
  136. [03:36]缘分注定我们的今生
  137. `;

  138. function parseLyric(text) { var lines = text.split(/\r|\n|\r\n/),pattern = /\[\d{1,2}:\d{2}.\d{1,3}\]|\[\d{1,2}:\d{2}\]/g,result = []; while (!pattern.test(lines[0])) {lines = lines.slice(1); }; lines[lines.length - 1].length === 0 && lines.pop(); lines.forEach(function(v,i,a) { var time = v.match(pattern), value = v.replace(pattern,''); time.forEach(function(v1,i1,a1){ var t = v1.slice(1, -1).split(/:/); result.push([parseInt(t[0],10) * 60 + parseFloat(t[1]), value]); }); }); result.sort(function(a, b){ return a[0] - b[0];}); return result;}
  139. var my_audio =document.getElementById("aud");var lyric = parseLyric(songkrc); my_audio.ontimeupdate = function () { for (var i = 0; i < lyric.length; i++) { if(this.currentTime > lyric[i][0]){ document.getElementById("musickrc01").innerHTML = lyric[i][1]; if(i+1==lyric.length){ document.getElementById("musickrc01").innerHTML = ""; }else{ document.getElementById("musickrc02").innerHTML = lyric[i + 1][1];};};};}; my_audio.play();
  140. /*暂停 播放按钮*/
  141. (function(){let mState = () => aud.paused ? (mplayer.style.setProperty('--disp1','1'), mplayer.style.setProperty('--disp2','0')) : (mplayer.style.setProperty('--disp1','0'), mplayer.style.setProperty('--disp2','1'));
  142. mplayer.addEventListener('click', () => aud.paused ? aud.play() : aud.pause());
  143. aud.addEventListener('play', () => mState());
  144. aud.addEventListener('pause', () => mState());
  145. })();
  146. /*结束*/

  147. /*进度条 进度时间*/
  148. prog.onclick = (e) => {
  149.                 aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
  150.         }
  151. aud.addEventListener('timeupdate', () => {
  152.                aud.addEventListener('timeupdate', () => {prog.style.background= 'linear-gra**nt(90deg, #00ff00, #00ff00, #00ff00 ' + aud.currentTime / aud.duration * 100 + '%, #333333 0)';});
  153.                 tmsg.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);

  154.         });
  155. let toMin = (val) => {
  156.                 if (!val) return '00:00';
  157.                 val = Math.floor(val);
  158.                 let min = parseInt(val / 60),
  159.                         sec = parseFloat(val % 60);
  160.                 if (min < 10) min = '0' + min;
  161.                 if (sec < 10) sec = '0' + sec;
  162.                 return min + ':' + sec;
  163.         };
  164. /*结束*/
  165. </script>
  166. <script>
  167. if ('getContext' in document.createElement('canvas')) {
  168.     HTMLImageElement.prototype.play = function() {
  169.         if (this.storeCanvas) {
  170.             // 移除存储的canvas
  171.             this.storeCanvas.parentElement.removeChild(this.storeCanvas);
  172.             this.storeCanvas = null;
  173.             // 透明度还原
  174.             image.style.opacity = '';  
  175.         }
  176.         if (this.storeUrl) {
  177.             this.src = this.storeUrl;   
  178.         }
  179.     };
  180.     HTMLImageElement.prototype.stop = function() {
  181.         var canvas = document.createElement('canvas');
  182.         // 尺寸
  183.         var width = this.width, height = this.height;
  184.         if (width && height) {
  185.             // 存储之前的地址
  186.             if (!this.storeUrl) {
  187.                 this.storeUrl = this.src;
  188.             }
  189.             // canvas大小
  190.             canvas.width = width;
  191.             canvas.height = height;
  192.             // 绘制图片帧(第一帧)
  193.             canvas.getContext('2d').drawImage(this, 0, 0, width, height);
  194.             // 重置当前图片
  195.             try {
  196.                 this.src = canvas.toDataURL("image/gif");
  197.             } catch(e) {
  198.                 // 跨域
  199.                 this.removeAttribute('src');
  200.                 // 载入canvas元素
  201.                 canvas.style.position = 'absolute';
  202.                 // 前面插入图片
  203.                 this.parentElement.insertBefore(canvas, this);
  204.                 // 隐藏原图
  205.                 this.style.opacity = '0';
  206.                 // 存储canvas
  207.                 this.storeCanvas = canvas;
  208.             }
  209.         }
  210.     };
  211. }

  212. vid=document.querySelector('#vid');
  213. var image= document.getElementById("Img");
  214. mplayer.onclick =function() { aud.paused ? (image.stop(),vid.pause()):(image.play(),vid.play())};
  215. </script>
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|离退休论坛 ( 浙B2-20100176 )

GMT+8, 2024-11-22 16:47 , Processed in 0.091982 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表