You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Android相机流传输时日志提示Invalid format错误?

错误产生原因

报错代码0x21对应Android系统原生ImageFormat.JPEG常量值,出现该错误的核心原因是:CameraController的startImageStream方法在Android平台仅支持接收YUV系列格式的帧数据,你当前的配置给Android端指定了ImageFormatGroup.jpeg作为输出格式,系统在尝试解析YUV平面信息时识别到传入的是JPEG格式,不符合预期就抛出了该错误。

解决方案
  • 调整相机控制器的imageFormatGroup配置,将Android端的输出格式改为YUV系列格式即可,修改后的代码如下:
_controller = CameraController(cameras[0], ResolutionPreset.ultraHigh,
    imageFormatGroup: Platform.isAndroid
        ? ImageFormatGroup.yuv420 // Android端使用YUV格式适配流传输
        : ImageFormatGroup.yuv420); // iOS端可根据业务需求保留原有配置或统一使用YUV
  • 如果你的业务需要获取JPEG格式的图片,不要依赖startImageStream返回的帧直接得到JPEG,可选择两种方案处理:
    • 不使用流接口,改用takePicture方法直接获取JPEG格式的拍摄结果
    • 保留YUV格式的流配置,自行在代码中增加YUV转JPEG的逻辑实现格式转换
  • 若部分低端安卓机型使用yuv420仍出现兼容性问题,可将Android端格式替换为ImageFormatGroup.nv21,该格式在安卓平台的适配性更广,同样支持startImageStream接口。

内容的提问来源于stack exchange,提问作者Mina Ayad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:24:03