当前位置:网站首页>PHP直播源码实现简单弹幕效果的相关代码
PHP直播源码实现简单弹幕效果的相关代码
2022-08-02 00:58:00 【生命不止、战斗不息】
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
<title>社区团购直播间</title>
<style>
* {
padding: 0;
margin: 0;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.btn{
margin-top:10px;
margin-left: 80px;
}
.wrapBox {
width: 800px;
height: 550px;
border: 1px solid #000;
margin: 50px auto 0;
}
.videoBox {
height: 500px;
position: relative;
overflow: hidden;
}
.videoBox img {
width: 100%;
height: 100%;
}
video {
width: 100%;
}
.danmuSend {
display: flex;
height: 50px;
}
#content {
flex: 1;
}
#send {
width: 100px;
}
.danmu {
color: #f00;
font-size: 20px;
position: absolute;
left: 800px;
top: 0;
white-space: nowrap;
}
.danmu img {
width: 30px;
height: 30px;
border-radius: 50%;
}
</style>
</head>
<body>
<div class="wrapBox">
<div class="videoBox">
<!--<img src="http://imgvue.wyt.plus/2022-06-21/1.jpg" />-->
<div id="id_test_video" style="width:100%; height:auto;"></div>
<span class="danmu">我是弹幕</span>
</div>
<div class="danmuSend">
<input id="content" type="text">
<button id="send">发送</button>
</div>
<div class="btn">
<a href="http://10.3.38.7:9527/#/marketing/like/list">
<button style="width:100px" type="button" class="btn btn-danger">返回</button>
</a>
<button style="width:100px;margin-left:50px" type="button" class="btn btn-light">强制关闭</button>
</div>
</div>
</body>
<script src="https://web.sdk.qcloud.com/player/tcplayerlite/release/v2.4.1/TcPlayer-2.4.1.js" charset="utf-8"></script>
<script src="49.234.23.21/live/TcPlayer-2.4.1.js"></script>
<script type="text/javascript" charset="utf-8">
var player = new TcPlayer('id_test_video', {
"m3u8": "webrtc://live.wyt.plus/live/wyt",
"flv": "http://live.wyt.plus/live/wyt.flv", //增加了一个 flv 的播放地址,用于PC平台的播放 请替换成实际可用的播放地址
"autoplay" : true, //iOS 下 safari 浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
"poster" : "http://www.test.com/myimage.jpg",
"width" : '800',//视频的显示宽度,请尽量使用视频分辨率宽度
"height" : '500'//视频的显示高度,请尽量使用视频分辨率高度
});
</script>
<script>
var oSend = document.querySelector('#send');
var oContent = document.querySelector('#content');
var oVideoBox = document.querySelector('.videoBox');
//点击发送按钮时触发此事件
oSend.onclick = function () {
//获取文本框输入的内容
var content = oContent.value;
createDanmu(content)
}
function createDanmu(content) { // 创建弹幕 => 移动 => 消失
//新建一个span类型的标签
var oSpan = document.createElement('span');
//将获取的输入的内容传入标签
oSpan.innerHTML = '<img src="http://imgvue.wyt.plus/2022-06-21/6.jpg">' + content;
//添加其class属性,对头像图片进行样式修改
oSpan.classList.add('danmu');
//设置其字体颜色属性随机
oSpan.style.color = randomColor();
//在oVideoBox所代表的的标签内添加该元素
oVideoBox.appendChild(oSpan);
//使该新标签出现的位置随机
oSpan.style.top = Math.round(Math.random() * (oVideoBox.clientHeight - oSpan.offsetHeight)) + 'px';
//设置定时器,使其位置改变
var timer = setInterval(function () {
// 初始位置
var start = oSpan.offsetLeft;
// 偏移量
start -= 10;
//先判断,使其向左移动相对父元素的距离最终小于其右边时移除该元素,并清除该定时器
if (start < -oSpan.offsetWidth) {
clearInterval(timer);
oSpan.remove();
}
// 赋值新位置
oSpan.style.left = start + 'px';
}, 100);
}
//用来生成随机颜色
function randomColor() {
return 'rgb(' + Math.round(Math.random() * 255) + ',' + Math.round(Math.random() * 255) + ',' + Math.round(Math.random() * 255) + ')';
}
</script>
</html>
边栏推荐
猜你喜欢
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)
期货公司开户实力经纪业务的规模
canal realizes mysql data synchronization
datagrip连接mysql数据库
管理基础知识20
IDEA版Postman插件Restful Fast Request,细节到位,功能好用
ERROR 1819 (HY000) Your password does not satisfy the current policy requirements
ELK日志分析系统
datagrip 报错 “The specified database userpassword combination is rejected...”的解决方法
input禁止输入
随机推荐
21.数据增强
电商库存系统的防超卖和高并发扣减方案
外包干了三年,废了...
大话西游创建角色失败解决
抖音数据接口API-获取用户主页信息-监控直播开启
ECMAScript 2022 正式发布,有你了解过的吗?
NFT到底有哪些实际用途?
6-25漏洞利用-irc后门利用
C语言:打印整数二进制的奇数位和偶数位
R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型、使用anova函数进行方差分析通过p值确认指定连续变量和风险值HR之间是否存在非线性关系
好的期货公司开户让人省心省钱
js中内存泄漏的几种情况
有效进行自动化测试,这几个软件测试工具一定要收藏好!!!
C语言实验八 字符数组程序设计
GO GOPROXY代理设置
ALCCIKERS Shane 20191114
交返是做日内交易的必要条件
Can‘t connect to MySQL server on ‘localhost3306‘ (10061) 简洁明了的解决方法
go笔记之——goroutine
FlinkSQL CDC实现同步oracle数据到mysql