请选择 进入手机版 | 继续访问电脑版

罗密欧自媒体

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 30|回复: 0

一个短视频播放单页源码

[复制链接]
发表于 2021-9-3 23:47:08 | 显示全部楼层 |阅读模式
说明
代码简单,页面简洁,支持自动连续播放,兼容微信不用全屏就能播放,第一次打开手动点击播放;
视频链接添加到ks.txt文件中,每行一条链接地址,源码包内提供了6000条视频链接,自行添加即可;

代码
index.html - 入口页面
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charSet="utf-8" />
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  6.     <meta http-equiv="Cache-Control" content="no-transform" />
  7.     <meta http-equiv="Cache-Control" content="no-siteapp" />
  8.     <meta name="referrer" content="never">
  9.     <meta name="renderer" content="webkit" />
  10.     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  11.     <title> XJJ </title>
  12.     <link rel="stylesheet" href="style.css">
  13. </head>
  14. <body>
  15.     <section id="main">
  16.         <video id="player" src="video.php" controls webkit-playsinline playsinline></video>
  17.     </section>
  18.     <section id="buttons">
  19.         <button id="switch">连续: 开</button>
  20.         <button id="next">播放下一个</button>
  21.     </section>
  22.     <script>
  23.     (function (window, document) {
  24.         if (top != self) {
  25.             window.top.location.replace(self.location.href);
  26.         }
  27.         var get = function (id) {
  28.             return document.getElementById(id);
  29.         }
  30.         var bind = function (element, event, callback) {
  31.             return element.addEventListener(event, callback);
  32.         }
  33.         var auto = true;
  34.         var player = get('player');
  35.         var randomm = function () {
  36.             player.src = 'video.php?_t=' + Math.random();
  37.             player.play();
  38.         }
  39.         bind(get('next'), 'click', randomm);
  40.         bind(player, 'error', function () {
  41.             randomm();
  42.         });
  43.         bind(get('switch'), 'click', function () {
  44.             auto = !auto;
  45.             this.innerText = '连续: ' + (auto ? '开' : '关');
  46.         });
  47.         bind(player, 'ended', function () {
  48.             if (auto) randomm();
  49.         });
  50.     })(window, document);
  51.     </script>      
  52. </body>
  53. </html>
复制代码


video.php - 随机获取视频地址
  1. <?php

  2. function read(...$filelist) {
  3.     $list = [];
  4.     foreach ($filelist as $file) {
  5.         $handle = fopen($file, 'r');
  6.         while (($line = fgets($handle)) !== false) {
  7.             array_push($list, trim($line));
  8.         }
  9.         fclose($handle);
  10.     }
  11.     return $list;
  12. }

  13. $list = read('ks.txt');
  14. $url = $list[array_rand($list)];

  15. header("Location: {$url}");
复制代码


style.css - 样式
  1. * {
  2.     border: 0;
  3.     margin: 0;
  4.     padding: 0;
  5.     outline: none;
  6.     box-sizing: border-box;
  7. }

  8. body {
  9.     background: #000;
  10.     width: 100vw;
  11.     height: 100vh;
  12.     overflow: hidden;
  13.     display: flex;
  14.     flex-direction: column;
  15.     align-items: center;
  16. }


  17. #main {
  18.     height: calc(100vh - 60px);
  19.     display: flex;
  20.     justify-content: center;
  21.     align-items: center;
  22. }

  23. #player {
  24.     width: 100%;
  25.     height: auto;
  26.     max-height: 100%;
  27. }

  28. #buttons {
  29.     height: 60px;
  30.     padding: 10px;
  31. }

  32. #switch,
  33. #next {
  34.     background: #FFF;
  35.     background: linear-gradient(to bottom, #FF2,#FB0);
  36.     color: #AF2E08;
  37.     font-size: 16px;
  38.     font-weight: bold;
  39.     height: 40px;
  40.     padding: 0px 20px;
  41.     margin: 0px 5px;
  42.     border-radius: 20px;
  43. }
复制代码


ks.txt - 视频列表
  1. http://alimov2.a.yximgs.com/upic/2017/11/05/03/BMjAxNzExMDUwMzMyMjNfMTY5OTgwMzlfMzc2OTA5MDYwOV8xXzM=_b.mp4
  2. http://txmov2.a.yximgs.com/upic/2019/05/18/18/BMjAxOTA1MTgxODA4MTVfMTExNTkxMjA4Ml8xMzE4MTQ2NTUwOV8xXzM=_b_B9779e00de57a95b32ce7c7f1a6f5d344.mp4
  3. http://txmov2.a.yximgs.com/upic/2019/05/18/18/BMjAxOTA1MTgxODMxMzZfMjIyNDUxMTY2XzEzMTgyNDUzOTExXzFfMw==_b_B8d23190ec90818e7b12bfaa1062a518c.mp4
  4. http://txmov2.a.yximgs.com/upic/2019/06/10/12/BMjAxOTA2MTAxMjExNDFfNTQwMDU2NDBfMTM5MzQyMDAxNjBfMV8z_b_B83123c2961cad47d1a7214ea2524c32d.mp4
  5. http://hwmov.a.yximgs.com/upic/2019/07/10/21/BMjAxOTA3MTAyMTI1NTFfNDM3ODZfMTUwMjY0MzU3MzJfMV8z_b_B276364034fb4756323028e2c0bc3c3e7.mp4
  6. ……
  7. 后面自行补充
复制代码


下载
可以按上面的代码自行创建文件,也可直接下载源码包
源码下载:https://www.lanzoux.com/iamjp8j
参考链接:https://www.hostloc.com/thread-662901-1-1.html

版权声明:本文为原创文章,版权归 SunPma 所有,转载请注明出处!

本文链接:https://sunpma.com/825.html

友情提示:如果博客出现404或链接失效,请留言或者联系博主修复!

小视频单页播放源码.zip

459.18 KB, 阅读权限: 10, 下载次数: 2

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

本版积分规则

手机版|罗密欧自媒体 ( 豫ICP备15024997号 )

GMT+8, 2021-9-23 05:23 , Processed in 0.053034 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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