Plugin video_player gagal memutar video - Flutter
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
Saya harus menurunkan versi flutter saya ke 1.20.2 agar video_player saya berfungsi.
Jika ada solusi lain, beri tahu saya.
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
Masalah yang sama saya baru saja meningkatkan versi flutter 1.22.5 dan berhasil