m0_67646599 2024-03-20 10:47 采纳率: 73.9%
浏览 5

微信小程序camera的实时帧数据使用了upng转换为Base64,但是报错?

报错为

img


不知道该怎么解决,并且我使用websocket传帧过去还乱码

img


并且转二进制也有问题,打印出来是空的

 var binary='';
          var bytes=new Uint8Array(frame.data);
          for(var len=bytes.byteLength,i=0;i<len;i++){
            binary+=String.fromCharCode(bytes[i]);
          }
  • 写回答

2条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-20 10:47
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 报错为 xxx,不知道该怎么解决,并且使用 Websocket 传帧过去还乱码,并且转二进制也有问题,打印出来是空的。 解决方案:
    1. 针对报错,可以根据错误消息查找相关资料或者重新检查代码实现。
    2. 对于 Websocket 传输乱码,可能是数据格式不匹配导致的,可以尝试检查数据的编码格式,或者对传输数据进行编解码。
    3. 对于转二进制出现问题,需要检查代码实现,确保传入的参数正确,对于 Uint8Array 类型的数据可以使用 from() 方法进行转换,并且使用 TextEncoder 对数据进行编码,例如:
      const encoder = new TextEncoder();
      const text = 'hello';
      const encodedText = encoder.encode(text);
      const binary = Uint8Array.from(encodedText);
      

      还可以使用 Buffer 对数据进行编码,例如:

      const text = 'hello';
      const buffer = Buffer.from(text, 'utf8');
      const binary = new Uint8Array(buffer);
      

    完整代码示例:

    // 数据转二进制
    const encoder = new TextEncoder();
    const text = 'hello';
    const encodedText = encoder.encode(text);
    const binary = Uint8Array.from(encodedText);
    console.log(binary);
    // 数据编解码
    const websocket = new WebSocket('ws://localhost:8080');
    websocket.addEventListener('open', () => {
      const encoder = new TextEncoder();
      const text = 'hello';
      const encodedText = encoder.encode(text);
      const binary = Uint8Array.from(encodedText);
      websocket.send(binary);
    });
    websocket.addEventListener('message', event => {
      const decoder = new TextDecoder();
      const data = new Uint8Array(event.data);
      const decodedData = decoder.decode(data);
      console.log(decodedData);
    });
    

    需要注意的是,在针对 Websocket 传输数据时,需要确保服务端和客户端传输数据的格式一致,才能正常解析数据。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月20日
  • 创建了问题 3月20日

悬赏问题

  • ¥15 怎样才能让鼠标沿着线条的中心线轨迹移动
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?