收藏
回答

使用image标签,频繁赋值base64会导致闪屏、白屏。buffer如何转jpg?

公司需求做视频对讲,目前存在闪屏、白屏现象,总结原因是base64图片较大(几百k),赋值过于频繁(8帧)。似乎是image标签对图片进行渲染的时延。


基于这样的理解,我的解决方案有两种:

  1. 减小base64大小
  2. 不转base64,转成jpg文件格式

后端传给我的是 ArrayBuffer 流,这种数据无法直接放在image标签里渲染。它如何转 jpg 呢?或者有没有其他方案?

回答关注问题邀请回答
收藏

3 个回答

  • 游戏人生
    游戏人生
    2023-03-21

    图片过大了吧,肯定会有这个问题,压缩下

    2023-03-21
    有用
    回复 1
    • Minf
      Minf
      2023-03-21
      压缩下?你是指从源进行压缩吗?源是设备,硬件原因这点无法实现。最靠谱的压缩我认为还是转jpg格式,本质也是减小图片大小了
      2023-03-21
      回复
  • Mr.Zhao
    Mr.Zhao
    发表于小程序端
    2023-03-21

    writeFile写入buffer生成临时地址,用image标签做,你是做的PPT对讲吧

    2023-03-21
    有用
    回复 2
    • Minf
      Minf
      2023-03-21
      不用writeFile 有性能问题。还有目前来看压力主要在服务端,你说小程序端卡成PPT倒不至于
      2023-03-21
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-03-21回复Minf
      让后端返回图片地址吧
      2023-03-21
      回复
  • 鱼饼🦦
    鱼饼🦦
    2023-03-21

    这么高频得刷新image不一定能实现,还是考虑canvas看能不能实现

    2023-03-21
    有用
    回复 3
    • Minf
      Minf
      2023-03-21
      同意,我检索资料后考虑过canvas,但由于不熟悉canvas,加上无法预测结果能否成功,暂时还没尝试
      2023-03-21
      回复
    • Minf
      Minf
      2023-03-21
      不对啊,我写了一半,突然想起image底层就是canvas实现的。。。
      2023-03-21
      回复
    • 鱼饼🦦
      鱼饼🦦
      2023-03-21回复Minf
      setdata未必支持你这么高频得刷新
      2023-03-21
      回复
登录 后发表内容