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

uniapp canvas 无法获取 webgl context 的问题解决

uniapp canvas 无法获取 webgl context 的问题解决

一、问题描述

在 uniapp 中做一个查看监控视频的页面,用到的是 JSMpeg 这个库,原理就是前后台通过 websocket 不断推送新画面内容到前端,前端通过这个 JSMpeg 渲染到前端页面中指定的 canvas 中。
而这个 canvas 需要具备 webgl 的内容,而不是 2d 的内容。

最初我是在页面中直接预写了一个 canvas 元素

<canvas class="display"/>

结果,当执行 .getContext('webgl') 的时候始终得到的是 null

在这里插入图片描述

二、原因、解决办法

从网上查了下,找到答案了,原因是 uniapp 中预写的 canvas 默认是 2d 的,是无法取到 webgl 内容的。
所以需要在代码中自己创建一个 canvas ,再插入到页面中。

  1. 页面中放一个 canvas 的盛放容器
<view class="canvas-container"></view>
  1. 创建 canvas 元素并添加到这个 canvas 容器中
let canvasContainer = document.querySelector('.canvas-container')
let canvasEl = document.createElement('canvas')
canvasEl.setAttribute('class', 'display')
canvasContainer.appendChild(canvasEl)let url = `ws://192.168.0.105${path}`
this.player = new JSMpeg.Player(url, {canvas: canvasEl})

三、结果

这样就能正常显示视频了。

在这里插入图片描述

http://www.lryc.cn/news/204352.html

相关文章:

  • Spring底层原理(二)
  • springboot188基于spring boot的校园商铺管理系统
  • 【计网 DNS】计算机网络 DNS协议详解:中科大郑烇老师笔记 (六)
  • vue 生命周期钩子函数 mounted()实例
  • 数据分享 I 地级市人口和土地使用面积基本情况
  • 被邀请为期刊审稿时,如何做一个合格的审稿人?官方版本教程来喽
  • 数据飞轮拆解车企数据驱动三板斧:数据分析、市场画像、A/B 实验
  • 基于PyQt5和OpenCV库的简单的文档对齐扫描应用程序
  • 【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割2(基础数据流篇)
  • HDR图像处理软件 Photomatix Pro mac中文版新增功能
  • 【Kotlin精简】第5章 简析DSL
  • 2021年06月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • MySQL执行计划分析
  • 【数据结构与算法】Snowflake雪花算法Java实现
  • 重要功能更新:妙手正式接入SHEIN供货模式(OBM)店铺,赋能卖家把握出海新机遇!
  • 和鲸ModelWhale与中科可控X系列异构加速服务器完成适配认证,搭载海光芯片,构筑AI算力底座
  • Vue单文件组件
  • 轻松理解 Transformers(1):Input部分
  • PHP MySQL 交互 笔记/练习
  • 领域驱动设计:基于DDD的微服务设计实例
  • 【PB续命02】Oracle中加密及编码等
  • STM32-LTC6804方案成熟BMS方案
  • 一步一步认知机器学习
  • 现代C++、STL、QTL的使用
  • Android 备案公钥、签名 MD5获取方法
  • 1688拍立淘接口,按图搜索商品接口,图片识别接口,图片上传搜索接口,图片搜索API接口,以图搜货接口
  • H3C AC通过Web平台进行AC软件的升级?
  • 网络通信和tcp协议
  • React 核心与实战2023版
  • 在 Android 上测试 Kotlin 协程