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

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

[复制链接]

62

主题

4474

回帖

2万

积分

荣誉版主

积分
21735
发表于 2024-1-14 08:18:21 | 显示全部楼层 IP:贵州黔东南州凯里

看到了,这个好!不知还可以往左移动吗?让屏幕与左边线对齐就更好了。
娟子欢迎您

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 08:21:43 | 显示全部楼层 IP:湖北武汉
娟子 发表于 2024-1-14 08:18
看到了,这个好!不知还可以往左移动吗?让屏幕与左边线对齐就更好了。 ...

与左边框对齐视频不就没居中了?

代码中修改left:0px; 即可实现对齐左边。

313

主题

1万

回帖

7万

积分

超级版主

积分
74705
发表于 2024-1-14 08:26:21 | 显示全部楼层 IP:亚太地区
       谢谢老师的介绍,老师辛苦了。发布视频全屏代码是可以了,就是发表音画不能全屏。

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 08:31:29 | 显示全部楼层 IP:湖北武汉
老谟深虑 发表于 2024-1-14 08:26
谢谢老师的介绍,老师辛苦了。发布视频全屏代码是可以了,就是发表音画不能全屏。
...

应该是有办法了,可以的。

27

主题

886

回帖

5731

积分

天山茗客

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

313

主题

1万

回帖

7万

积分

超级版主

积分
74705
发表于 2024-1-14 08:34:47 | 显示全部楼层 IP:亚太地区

       这还是视频,不是代码音画呀?

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 08:36:38 | 显示全部楼层 IP:湖北武汉
老谟深虑 发表于 2024-1-14 08:34
这还是视频,不是代码音画呀?

也没有现成的音画帖例子啊。

找个来试试看。

27

主题

886

回帖

5731

积分

天山茗客

积分
5731
 楼主| 发表于 2024-1-14 08:37:29 | 显示全部楼层 IP:湖北武汉
老谟深虑 发表于 2024-1-14 08:34
这还是视频,不是代码音画呀?

音画帖和这视频帖都是代码帖,道理一样的。

62

主题

4474

回帖

2万

积分

荣誉版主

积分
21735
发表于 2024-1-14 08:40:47 | 显示全部楼层 IP:贵州黔东南州凯里
本帖最后由 娟子 于 2024-1-14 08:41 编辑
起个网名好难 发表于 2024-1-14 08:21
与左边框对齐视频不就没居中了?

代码中修改left:0px; 即可实现对齐左边。 ...

谢谢老师指导!好的,知道了,这个我也收藏了,到时按需要便于选择使用。
娟子欢迎您

313

主题

1万

回帖

7万

积分

超级版主

积分
74705
发表于 2024-1-14 08:53:01 | 显示全部楼层 IP:亚太地区
起个网名好难 发表于 2024-1-14 08:37
音画帖和这视频帖都是代码帖,道理一样的。
  1. <style>
  2. #papa {margin: 150px -20px;
  3.         width: 1168px;
  4.         height: 640px;
  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="papa">
  67. <div id="dt"><img id="Img" src="http://chuangshicdn.data.mvbox.cn/album/24/01/08/24010814022029905152.gif" width="100%" height="100%"></div>

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

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

  135. 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;}
  136. 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();
  137. /*暂停 播放按钮*/
  138. (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'));
  139. mplayer.addEventListener('click', () => aud.paused ? aud.play() : aud.pause());
  140. aud.addEventListener('play', () => mState());
  141. aud.addEventListener('pause', () => mState());
  142. })();
  143. /*结束*/

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

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

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


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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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