收藏
回答

微信 VideoDecoder 官方 Demo 在 Android 机器上无法正常运行?

https://developers.weixin.qq.com/s/dSRQqGmg7GuT 来自 https://developers.weixin.qq.com/miniprogram/dev/api/media/video-decoder/VideoDecoder.html

不做任何修改,在 小米 11,Android 13 版本,微信 Version 8.0.37,上无法正常运行。在 苹果手机上能正常运行。

具体表现为,点了 Play 之后开始选择视频,无论选择哪种视频(尺寸、大小、时长),都会弹出一个 tip 提示 “压缩中,请稍后”,等该 提示 消失后,啥也没有了。从 log 上看,就打印出 “stop” 了。

如果对 if (imageData) render(imageData) 修改为 if (imageData) { console.log("imageData", imageData); render(imageData) } 则,不会有任何带有 imageData 字样的 log 打印。

如果在 const decoder = wx.createVideoDecoder() 之后添加 console.log(decoder),直接报错。

另外,真机调试时,log 没能显示在开发者工具的 console 页面上。只能用 预览,打开调试的方法来查看 log。

最后一次编辑于  2023-06-13
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2023-06-15

    我们更新下demo,可先参考这个https://developers.weixin.qq.com/s/dez7LZm57hIy

    2023-06-15
    有用
    回复
  • xffmpeg
    xffmpeg
    2023-06-14

    imageData = decoder.getFrameData()

    这个不保证每次取都能取到帧, 取到了就渲染,没取到就下一帧再尝试取一次.


    如果在 const decoder = wx.createVideoDecoder() 之后添加 console.log(decoder),直接报错。

    这个问题 给下截图看看是什么报错

    2023-06-14
    有用
    回复 1
    • 深海Enoch
      深海Enoch
      2023-06-14
      是的,你是对的。所以是官方 Demo 写的存在问题,应该在 do while 里加一个 int 类型的重试次数,连续十次取不到下一帧才判定为解码失败就对了。
      2023-06-14
      回复
登录 后发表内容