vue 引用 tcplayer 做直播( 俩个例子,都可以用。替换直播地址即可,后端推流,前端观看。 )
例子一比例子二更加容易被理解。另外 m3u8 也支持 webrtc 开头的直播地址。
补充JS 得下载到本地,自行引入:
https://imgcache.qq.com/open/qcloud/live/webrtc/js/TXLivePusher-1.0.0.min.js
https://web.sdk.qcloud.com/player/tcplayerlite/release/v2.4.1/TcPlayer-2.4.1.js
例子一:
<template>
<!-- 测试-->
<div id="palyback">
<div :class="{'else': onswitch}">
<div id="player-container-id"></div>
</div>
<!-- <div :class="{'else': !onswitch}">
<div id="player-container"></div>
</div> -->
<!-- <div class="box-title" @click="onchange">切换</div> -->
</div> </template> <script>
import { TcPlayer } from '@/common/TcPlayer-module-2.4.1'
import { TXLivePusher } from '@/common/TXLivePusher-1.0.0.min'
export default {
data() {
return {
player: null,
// onswitch: false
}
}, mounted() {
this.playVideo()
}, methods: {
playVideo() {
document.getElementById('player-container-id').innerHTML = ""
this.player = new TcPlayer('player-container-id', {
"m3u8": 'webrtc://pull.wiseuc.com/live/test', //请替换成实际可用的播放地址
"autoplay": true, //iOS下safari浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
// "coverpic": img,
"width": '100%', //视频的显示宽度,请尽量使用视频分辨率宽度
"height": '100%', //视频的显示高度,请尽量使用视频分辨率高度
"remember": 1
}); this.player = new TcPlayer('player-container', {
"m3u8": 'webrtc://pull.wiseuc.com/live/test', //请替换成实际可用的播放地址
"autoplay": true, //iOS下safari浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
// "coverpic": img,
"width": '100%', //视频的显示宽度,请尽量使用视频分辨率宽度
"height": '100%', //视频的显示高度,请尽量使用视频分辨率高度
"remember": 1
});
}, // // 切换
// onchange() {
// this.onswitch = !this.onswitch
// }
}
}
</script> <style scoped>
#palyback {
margin-top: 5%;
width: 70%;
height: 80%;
box-sizing: border-box;
padding-top: 2rem;
min-width: 59.375rem;
position: relative;
}
.else {
width: 400px;
position: absolute;
top: 3%;
right: 2%;
z-index: 100;
} .box-title {
width: 50px;
height: 40px;
line-height: 40px;
text-align: center;
background-color: pink;
position: absolute;
bottom: 3%;
right: 2%;
}
</style>
例子二:
<template>
<!-- 测试-->
<div id="palyback">
<div id="id_test_video" style="width:100%; height:auto;"></div>
</div>
</template> <script>
import { TcPlayer } from '@/common/TcPlayer-module-2.4.1'
import { TXLivePusher } from '@/common/TXLivePusher-1.0.0.min'
export default {
data() {
return {
player: null,
onswitch: false
}
}, mounted() {
this.getPlayUrl()
}, methods: { // 直播地址
getPlayUrl() {
this.init();
},
// 初始化 视频播放器
init(video, poster) {
// let width = this.getParams("width");
// let height = this.getParams("height");
var player = new TcPlayer("id_test_video", {
m3u8: 'webrtc://pull.wiseuc.com/live/test', //请替换成实际可用的播放地址
autoplay: false, //iOS 下 safari 浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
poster: { style: "cover", src: poster },
width: "480",
height: "211",
live: true,
// controls:'system', // default 显示默认控件,none 不显示控件,system 移动端显示系统控件 备注:如果需要在移动端使用系统全屏,就需要设置为system。默认全屏方案是使用 Fullscreen API + 伪全屏的方式例子
pausePosterEnabled: true,
volume: 0.5,
systemFullscreen: true,
x5_orientation: 0
});
document.getElementsByClassName("vcp-error-tips")[0].style.fontSize = "14px";// 错误码提示语字体大小,因引入了rem,默认字体大小为100px.
},
}
}
</script> <style scoped>
#palyback {
width: 100%;
height: 100%;
box-sizing: border-box;
padding-top: 2rem;
background-color: #1c302e;
display: flex;
align-items: center;
justify-content: center;
min-width: 59.375rem;
position: relative;
}
.else {
width: 400px;
position: absolute;
top: 3%;
right: 2%;
z-index: 100;
} .box-title {
width: 50px;
height: 40px;
line-height: 40px;
text-align: center;
background-color: pink;
position: absolute;
bottom: 3%;
right: 2%;
}
</style>
最后感谢俩位大神的帮助:
https://blog.csdn.net/ITLISHUANG/article/details/108167296
https://blog.csdn.net/qq_33462132/article/details/103684605
vue 引用 tcplayer 做直播( 俩个例子,都可以用。替换直播地址即可,后端推流,前端观看。 )的更多相关文章
- vue引用公用的头部和尾部文件。
我创建了一个header.vue和fotter.vue,用来做于网站的头部和尾部,每个页面都需要引用这两个,我以组件的方式,来引用这样只需要添加注册的组件就可以了. 第一步.在components文件 ...
- vue学习【一】vue引用封装echarts并展示多个echarts图表
大家好,我是一叶,经过一段时间对vue的学习,我打算把vue做一个系列,把踩过的坑和大家分享一下. 现在开始第一章:vue引用并封装echarts 在文章开始前,我先舔波echarts(真香).阿里的 ...
- perl 为什么要用引用来做对象呢?
perl 为什么要用引用来做对象呢? 因为一个重要的原因是 my 引用 脱离作用域,外部仍旧生效
- 如何利用vue和php做前后端分离开发?
新手上路,前端工程师,刚毕业参加工作两个月,上面让我用vue搭建环境和php工程师一起开发,做前后端分离,然而我只用过简单的vue做一些小组件的经验,完全不知道怎样和php工程师配合,ps: php那 ...
- vue spn如何做seo优化
vue spn如何做seo优化 突然来了一个需求,对已有的项目做SEO优化,WHAT? 总所周知,spn对seo不够优化,因而官方考虑到直接使用ssr 一个不算解决办法的办法prerender-spa ...
- vue 引用高德地图
vue 引用地图之傻瓜式教程(复制粘贴即可用) npm 下载 npm install vue-amap --save main.js 代码 import AMap from 'vue-amap'; V ...
- Android实现录屏直播(三)MediaProjection + VirtualDisplay + librtmp + MediaCodec实现视频编码并推流到rtmp服务器
请尊重分享成果,转载请注明出处,本文来自Coder包子哥,原文链接:http://blog.csdn.net/zxccxzzxz/article/details/55230272 Android实现录 ...
- 从后端到前端之Vue(一)写个表格试试水
目录: 1.脚本式开发. 2.工程化开发 3.工程化和脚本的区别 4.来个table试试水 4,1.目标 4.2.思路 4.3.设计与编码 4.4.效果 5.业务分离 6.功能拓展——个性化设置 ...
- 调用Live555接收RTSP直播流,转换为Http Live Streaming(iOS直播)协议
Live555接收RTSP直播流,转换Http Live Streaming(iOS直播)协议 RTSP协议也是广泛使用的直播/点播流媒体协议,之前实现过一个通过live555接收RTSP协议,然后转 ...
随机推荐
- jquery 判断单/复选框是否被选中
1 <div> 2 <span>高亮:</span><input type="checkbox" name="light&quo ...
- 【Maven实战技巧】「插件使用专题」Maven-Assembly插件实现自定义打包
前提概要 最近我们项目越来越多了,然后我就在想如何才能把基础服务的打包方式统一起来,并且可以实现按照我们的要求来生成,通过研究,我们通过使用maven的assembly插件完美的实现了该需求,爽爆了有 ...
- NODEJS对象
1.全局对象 Node.js: global 交互模式下var声明的变量都属于全局下的变量,可以使用global访问,例如global.a 脚本模式下var声明的变量不属于全局下的变量.不能使用glo ...
- 为什么大家都在用WebRTC?
WebRTC代表网络实时通信.它是一种非常令人兴奋,强大且具有高度破坏性的尖端技术和标准.自从WebRTC诞生以来,80%的浏览器都开始支持它.有数据显示,2017年~2021年期间,WebRTC市场 ...
- ES11中的bigint
上一周小编因为自己的事情,没有持续更新,还望大家谅解,趁着今天醒得早,小编继续和大家学(si)习(ke)es11中的新语法.在js中,对整数类型的数据,存在着最大极限,这个极限就是 const max ...
- 关于TreeSet集合的理解
TreeSet 集合主要是实现了Collection集合的实现类,主要框架为: 1. Set接口的框架: |----Collection接口:单例集合,用来存储一个一个的对象 |----Set接口: ...
- Ubuntu安装ssh,及失败解决方案
网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...
- Python脚本文件中使用中文
Python做图形用户界面(GUI)开发时经常要在界面上显示中文,需要做如下处理(详见[1]和[2]2.3节): 在py文件的首行写上:# -- coding:utf-8 -- 保存py文件时要存为u ...
- 【笔记】KNN之分类准确度
分类准确度 分类准确度 以sklearn中的手写数字datasets.load_digits为例,其是8*8的图形,具有64个特征值,类别由0到9 我们挑选出666这个图形,将其可视化 X = dig ...
- 【笔记】初探KNN算法(3)
KNN算法(3) 测试算法的目的就是为了帮助我们选择一个更好的模型 训练数据集,测试数据集方面 一般来说,我们训练得到的模型直接在真实的环境中使用 这就导致了一些问题 如果模型很差,未经改进就应用在现 ...