Flutter android.graphics.ImageDecoder 无法解码图像

问题描述 投票:0回答:1

我正在通过 tcp 发送实时 mjpeg 流。我的服务器正在发送 base64 编码的帧,并且我的 Flutter 客户端应用程序正在正确接收和解码这些帧。 当我在 Linux(桌面)上运行我的 flutter 应用程序时,该流可以工作,但不能在 Android 模拟器上运行。 这是显示流的代码:

String data = utf8.decode(snapshot.data as List<int>);

return Expanded(
            child: Image.memory(
              Uint8List.fromList(Base64Decoder().convert(data)),
              gaplessPlayback: true,
              excludeFromSemantics: true,

              errorBuilder: (context, object, stacktrace) {
                return Text("error");
              },
            ),
          );
E/FlutterJNI( 1662): Failed to decode image
E/FlutterJNI( 1662): android.graphics.ImageDecoder$DecodeException: Failed to create image decoder with message 'unimplemented'Input contained an error.
E/FlutterJNI( 1662):    at android.graphics.ImageDecoder.nCreate(Native Method)
E/FlutterJNI( 1662):    at android.graphics.ImageDecoder.access$200(ImageDecoder.java:173)
E/FlutterJNI( 1662):    at android.graphics.ImageDecoder$ByteBufferSource.createImageDecoder(ImageDecoder.java:250)
E/FlutterJNI( 1662):    at android.graphics.ImageDecoder.decodeBitmapImpl(ImageDecoder.java:1862)
E/FlutterJNI( 1662):    at android.graphics.ImageDecoder.decodeBitmap(ImageDecoder.java:1855)
E/FlutterJNI( 1662):    at io.flutter.embedding.engine.FlutterJNI.decodeImage(FlutterJNI.java:524)

我尝试过不同的解码帧组合,但没有一个有效。我认为问题可能是 android.graphics 试图将图像读取为 bmp?

android flutter dart bmp mjpeg
1个回答
0
投票

问题解决了吗?一种可能是您使用的任何软件包在下载时都没有更改其文件编码/格式,从而导致文件编码错误(例如,使用 ASCII 编码的 .jpg)

© www.soinside.com 2019 - 2024. All rights reserved.