当前位置: 首页 > news >正文

商丘网站建设的公司哪家好四川成都现在可以去吗

商丘网站建设的公司哪家好,四川成都现在可以去吗,建筑工程网站建设,华为公司网站建设分析评价1.需求背景 其实腾讯云点播的api也支持视频水印,但是只有单个水印,大概效果是这样子的,不满足我们的需求,我们的需求是需要视频中都是水印。 腾讯云点播水印 项目需求的水印(主要是防录屏,最后的实现效果是这样&…

1.需求背景

其实腾讯云点播的api也支持视频水印,但是只有单个水印,大概效果是这样子的,不满足我们的需求,我们的需求是需要视频中都是水印。
腾讯云点播水印
image.png
项目需求的水印(主要是防录屏,最后的实现效果是这样)
image.png

2.实现

创建 warterMark.js在这里插入图片描述
warterMark.js里面的代码
import Vue from 'vue'Vue.directive('watermark', {bind: function(el, binding){// 水印文字,父元素,画布宽度,画布高度,字体,文字颜色,画布横坐标function addWaterMarker(str, parentNode, width, height, font, textColor, fillTextX = '10'){ // 检查父元素是否包含子元素const elementContains = (parent, child) => parent !== child && parent.contains(child);const flag = elementContains(parentNode, document.querySelector('canvas'));// 防止重复创建if (!flag) {let can = document.createElement('canvas');parentNode.appendChild(can);can.width = width || 200;can.height = height || 140;can.style.display = 'none';let cans = can.getContext('2d');cans.rotate(-20 * Math.PI / 180);cans.font = font || "13px Microsoft Yahei";cans.fillStyle = textColor || "#DDDDDD";cans.textAlign = 'left';cans.textBaseline = 'Middle';cans.fillText(str, fillTextX, can.height);// 设置背景图(整个项目中都添加水印建议使用此方法)// parentNode.style.backgroundImage = "url(" + can.toDataURL("image/png") + ")";// 创建div 定位覆盖(某个元素,如图片添加水印建议使用此方法)let div = document.createElement('div');div.id = str;div.style.pointerEvents = 'none';div.style.top = '0';div.style.left = '0';div.style.position = 'absolute';div.style.zIndex = '100000';div.style.width = '100%';div.style.height = '100%';div.style.background = 'url(' + can.toDataURL('image/png') + ')';parentNode.appendChild(div);}}if (binding.value.text) {addWaterMarker(binding.value.text, el, binding.value.width, binding.value.height, binding.value.font, binding.value.textColor, binding.value.fillTextX )}}
})
main.js 引入warterMark.js (或者在想要添加的某个页面引入)
import  '@/utils/warterMark.js'

image.png

4.页面结构(注意水印一定要跟video同级,不要直接加到video上面去,会没有用)image.png
5.加了水印后效果如下图,但是会出现一个问题,就是视频在点击全屏时,水印会消失

image.png
全屏时水印消失:
image.png

6.处理全屏视频时水印消失的问题:

这段代码的意思主要是监听视频全屏时,就去拿到视频标签元素 和 水印标签元素,然后把 水印标签元素append到视频标签元素里面去就可以显示水印了。(因为我这里用的是腾讯云sdk,大家可以根据自己用的视频插件来写,基本逻辑就在这里了)
原因就是在视频全屏播放时,会把其他的元素都隐藏掉(css默认)。所以很多做视频开发的开发者,他们的全屏其实不是真正的全屏,而是套了一个壳,把外面的壳放大了。

// 用户全屏添加水印this.player.on('fullscreenchange', () => {const video_div = document.getElementsByClassName('course_video')[0]video_div.appendChild(document.getElementsByClassName('my_course_video_box')[0])})

image.png

3.补充(水印指令的用法)

如果只想作用于一个盒子时出现了这个情况,那么你需要给水印盒子添加一个position: relative;属性
image.png
盒子css添加position: relative;属性

 .fanwai{width: 800px;height: 150px;border: 1px solid rebeccapurple;margin-top: 20px;position: relative;}

效果:
image.png

4.缺点:

该水印指令生成的水印 可以通过删除dom元素(如果你的水印是在一个单独的dom的话,如果你是作用在body上就不会,因为你把body删了里面的内容也没了)就把水印删了(只能说防普通用户,防君子)。可以找下其他的水印插件看看。 但是视频全屏时添加水印的逻辑是不变的。

5.demo地址:

https://github.com/rui-rui-an/watermark
如果demo运行起来视频不可用,可能是云点播的license过期了,大家可以自己去申请一个填到项目里。
云点播地址:https://cloud.tencent.com/document/product/266/58772image.png
填到这里就可以了
image.png

6.参考链接:

vue 指令实现水印效果(掘金):https://juejin.cn/post/6966985241286148126

http://www.yayakq.cn/news/260281/

相关文章:

  • 宁波厂家关键词优化网站seo是啥
  • 域名对网站建设有什么影响吗软件开发需求发布平台
  • 阿里云快速备份网站网页传奇游戏怎么注销
  • 建网站需要哪些资质找客网怎么样
  • 上海网站建设-中国互联中国机械采购平台
  • 做ps的网站有哪些功能吗锦州市网站建设
  • 可以用来做简单的网络验证的网站软件设计与开发
  • 云南旅行社网站开发中环互联网网站建设套餐
  • 眉山网站建设兼职fzzz主题wordpress
  • 东莞哪家建网站公司好用wordpress搭建知名网站
  • 个人网站logo中国建设银行网站对公业务流程
  • 电子政务门户网站建设的教训网站开发能赚钱吗
  • 北京住房和城乡建设部官方网站转入已备案网站
  • 百度搜不倒公司网站做网站服务器配置怎么选
  • 网站怎么做充值提现功能为什么搜索不到刚做的网站
  • 怎样给网站找空间做备案建设银联官方网站
  • 怎么网上接网站开发单自己做wordpress 百秀主题
  • 杭州省建设厅网站第三方网站建设
  • 深圳做网站补贴seo 首页
  • 信阳市网站建设wordpress slider插件下载
  • 网站订单系统模板网站视频提取软件app
  • 网站升级维护需要多久软件项目管理平台
  • 万网建设网站网站页面设计怎么收费
  • wordpress 建站 电子书兰州新站点seo代理
  • 有哪些做相册视频剪辑的网站网络公司给销售公司做网站
  • 厦门网站建设小程序开发小饭店普通装修
  • 网站可以只做移动端吗富阳网站建设推广
  • 做防护用品的网站湖南微信管理系统
  • 网站关键字标签软件开发工具与平台
  • 租房网站开发线上销售渠道有哪几种