Plugin video_player gagal memutar video - Flutter

Oct 04 2020

Saya memperbarui flutter saya menjadi 1.22.0 dan sekarang video_player saya memberikan kesalahan Pengecualian. Itu berfungsi dengan baik sebelum saya memperbarui flutter saya ke 1.22.0.

Ini kesalahan saya:

E / flutter (8545): [ERROR: flutter / lib / ui / ui_dart_state.cc (177)] Unhandled Exception: 'package: flutter / src / services / message_codec.dart': Penegasan gagal: baris 111 pos 15: 'kode ! = null ': tidak benar. E / flutter (8545): # 0
_AssertionError._doThrowNew (panah: core-patch / error_patch.dart: 46: 39) E / flutter (8545): # 1 _AssertionError._throwNew (panah: core-patch / error_patch.dart: 36: 5) E / flutter (8545): # 2
PlatformException baru (paket: flutter / src / services / message_codec.dart: 111: 15) E / flutter (8545): # 3 VideoPlayerApi.create (paket: video_player_platform_interface / messages . panah: 205: 13) E / flutter (8545): E / flutter (8545): # 4
MethodChannelVideoPlayer.create (paket: video_player_platform_interface / method_channel_video_player.dart: 46: 42) E / flutter (8545): # 5 VideoPlayerController.initialize (paket: video_player / video_player.dart: 275: 45) E / flutter (8545): # 6 _ScreenBackgroundVideoState.initState (paket: flow / widget / background / screen_background_video.dart: 17: 9) E / flutter (8545): # 7 StatefulElement._firstBuild (paket: flutter / src / widgets / framework.dart: 4765: 58) E / flutter (8545): # 8 ComponentElement.mount (paket: flutter / src / widgets / framework.dart: 4601: 5) E / flutter (8545): # 9 Element.inflateWidget (paket: flutter / src / widgets / framework .dart: 3569: 14) E / flutter (8545): # 10 MultiChildRenderObjectElement.mount (paket: flutter / src / widgets / framework.dart: 6236: 32) E / flutter (8545): # 11 Element.inflateWidget (paket : flutter / src / widgets / framework.dart: 3569: 14) E / flutter (8545): # 12 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545) : # 13 SingleChildRenderObjectElement. mount (paket: flutter / src / widgets / framework.dart: 6118: 14) E / flutter (8545): # 14 Element.inflateWidget (paket: flutter / src / widgets / framework.dart: 3569: 14) E / flutter (8545): # 15 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545): # 16 ComponentElement.performRebuild (paket: flutter / src / widgets / framework.dart : 4652: 16) E / flutter (8545): # 17 Element.rebuild (paket: flutter / src / widgets / framework.dart: 4343: 5) E / flutter (8545): # 18 ComponentElement._firstBuild (paket: flutter /src/widgets/framework.dart:4606:5) E / flutter (8545): # 19 ComponentElement.mount (paket: flutter / src / widgets / framework.dart: 4601: 5) E / flutter (8545): # 20 Element.inflateWidget (paket: flutter / src / widgets / framework.dart: 3569: 14) E / flutter (8545): # 21 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545): # 22 SingleChildRenderObjectElement.mount (paket: flutter / src / widgets / framework.dart: 6118: 14) E / flutter (8545): # 23 Element.inflateW idget (paket: flutter / src / widgets / framework.dart: 3569: 14) E / flutter (8545): # 24 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545): # 25 SingleChildRenderObjectElement.mount (paket: flutter / src / widgets / framework.dart: 6118: 14) E / flutter (8545): # 26 Element.inflateWidget (paket: flutter / src / widgets / framework.dart : 3569: 14) E / flutter (8545): # 27 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545): # 28 SingleChildRenderObjectElement.mount (paket: flutter /src/widgets/framework.dart:6118:14) E / flutter (8545): # 29 Element.inflateWidget (paket: flutter / src / widgets / framework.dart: 3569: 14) E / flutter (8545): # 30 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545): # 31 SingleChildRenderObjectElement.mount (paket: flutter / src / widgets / framework.dart: 6118: 14) E / flutter (8545): # 32 Element.inflateWidget (paket: flutter / src / widgets / framework.dart: 3569: 14) E / flutter (8545): # 33 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545): # 34 ComponentElement.performRebuild (paket: flutter / src / widgets / framework.dart: 4652: 16) E / flutter (8545): # 35 Element.rebuild (paket: flutter / src / widgets / framework.dart: 4343: 5) E / flutter (8545): # 36 ComponentElement._firstBuild (paket: flutter / src / widgets / framework.dart: 4606: 5) E / flutter (8545): # 37 ComponentElement.mount (paket: flutter / src / widgets / framework.dart: 4601: 5) E / flutter (8545): # 38 Element.inflateWidget ( paket: flutter / src / widgets / framework.dart: 3569: 14) E / flutter (8545): # 39 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545 ): # 40 SingleChildRenderObjectElement.mount (paket: flutter / src / widgets / framework.dart: 6118: 14) E / flutter (8545): # 41 Element.inflateWidget (paket: flutter / src / widgets / framework.dart: 3569 : 14) E / flutter (8545): # 42 Element.updateChild (paket: flutter / src / widgets / framework.dart: 3327: 18) E / flutter (8545): # 43 ComponentElement.performRebuild (paket: flutter / src / widgets / framework.dart: 4652: 16)

Ini kode saya:

import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';

class ScreenBackgroundVideo extends StatefulWidget {
  @override
  _ScreenBackgroundVideoState createState() => _ScreenBackgroundVideoState();
}

class _ScreenBackgroundVideoState extends State<ScreenBackgroundVideo> {
  VideoPlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller = VideoPlayerController.asset('assets/vid/login.mp4')
      // set background video using assets for login screen
      ..initialize().then((_) {
        // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
        setState(() {});
      }); // background video will play as soon as the splashscreen is closed
    _controller.play();
    _controller
        .setLooping(true); // looping set to true for the background video
    _controller.setVolume(0); // volume set to 0 for background video
  }

  @override
  void dispose() {
    super.dispose();
    // TODO: implement dispose
    _controller.dispose(); // Dispose the controller after play is done.
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: _controller.value.initialized
          ? AspectRatio(
              aspectRatio: _controller.value.aspectRatio,
              child: VideoPlayer(_controller),
            )
          : Container(),
    );
  }
}

Butuh bantuan untuk memperbaikinya.

Jawaban

2 Jyo Oct 06 2020 at 06:45

Saya harus menurunkan versi flutter saya ke 1.20.2 agar video_player saya berfungsi.

Jika ada solusi lain, beri tahu saya.

1 mithataydogmus Oct 06 2020 at 11:28

Atau Anda dapat menurunkan versi pemutar video ke 0.10.11 + 2 daripada menurunkan flutter jika Anda tidak menggunakan fitur baru apa pun di dalam plugin pemutar video.

Anda dapat menemukan detail lebih lanjut di sini: https://github.com/flutter/flutter/issues/66627

Nbn Dec 23 2020 at 07:23

Masalah yang sama saya baru saja meningkatkan versi flutter 1.22.5 dan berhasil