flutter - Flutter 中的视频播放器错误 com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException

标签 flutter dart

我尝试使用video_player 和chewie 来显示视频,但是当用户已经观看了视频时,用户必须发送该视频的反馈。问题是当用户发送他们的反馈并且他们想观看其他视频时,视频没有显示,我收到如下错误:
未处理的异常: PlatformException(VideoError, Video player has error com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.MTK.VIDEO.DECODER.AVC, Format (1, null, null, video/avc, null, -1, null, [1920, 976, -1.0], [-1, -1]), null)
但是当我关闭应用程序并再次打开它时,问题就消失了,但如果用户再次发送反馈,问题就会发生。
这是应用程序中问题的图片。
[ the problem ]
这张图片是当用户还没有发送反馈时视频的显示方式。
[ the video ]
这是我显示视频的代码

class ChewieListItem extends StatefulWidget{
  final VideoPlayerController videoPlayerController;
  final bool looping;

  ChewieListItem({
    @required this.videoPlayerController,
    this.looping,
    Key key,
  }) : super(key: key);

  @override
  _ChewieListItemState createState() => _ChewieListItemState();
}

class _ChewieListItemState extends State<ChewieListItem>{
  ChewieController _chewieController;

  @override
  void initState(){
    super.initState();
    
    _chewieController = ChewieController(
      videoPlayerController: widget.videoPlayerController,
      aspectRatio: 3/1.5 ,
      autoInitialize: true,
      looping: widget.looping,
      autoPlay: false,
      errorBuilder: (context, errorMessage){
        return Center(
          child: Text(errorMessage,
          style: TextStyle(color: Colors.white),
          ),
        );
      }
    );
  }

  @override
  Widget build(BuildContext context){
    return Padding(
      padding: const EdgeInsets.all(2.0),
      child: Chewie(
        controller: _chewieController,
      ),
    );
  }
  @override
  void dispose(){
    super.dispose();
    widget.videoPlayerController.dispose();
    _chewieController.dispose();
  }
}
感谢您的回答和建议。

最佳答案

当电话设备使用许多视频解码器实例时,可能会发生此错误。对于 RAM 限制,几乎每个设备都在应用程序之间共享解码器实例的这种限制。
最好使用一个播放器实例并在之后处理它。
有关更多信息和详细信息,请参阅此问题
https://github.com/google/ExoPlayer/issues/5799

关于flutter - Flutter 中的视频播放器错误 com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64186395/

相关文章:

ios - 更新 flutter 后面临构建问题

flutter 错误 : The argument type 'DocumentSnapshot<Object?>? can' t be assigned to parameter 'DocumentSnapshot<Object? >

html - 如何显示 Dart :html file image in Flutter web?

flutter - 在 Flutter 中添加 3 点弹出菜单 AppBar 的最简单方法

ios - Dart devtools内存 View 无法使用堆栈溢出错误

flutter - 如何让按钮选择所有 Flutter 复选框?

dart - 如何使用 Flutter SQFlite 获取数据库表中的行数

firebase - 错误:在此Director小部件上方找不到正确的Provider <User>

listview - 为什么每次在 0 索引处插入新项目时都会触发所有列表项目的 "initState()"方法?

android - 如何在我的 Flutter 应用中实现 Branch SDK