Flutter 视频播放器不显示视频

drkbr07n  于 2023-01-27  发布在  Flutter
关注(0)|答案(1)|浏览(272)

在我的应用程序中,我有一个视频在后台运行,我有一个参数页面,其中有一个filepicker按钮,用于在sharedpreferences中保存所选视频的路径

Future<File> _pickVideo() async {
final result = await FilePicker.platform.pickFiles(type: FileType.video);

File file = File(result!.files.single.path ?? '');
if (file != null) {
  setState(() {
    pickedVideo = file;
    print('video $pickedVideo');
  });
}
return file;}

在视频播放器页面中,我检索sharedpreferences路径,并将其显示在一个Text小部件中

Text(selectedVideoValue ?? '',)

当我想在视频播放器中使用它时,它不工作。我做错了什么吗?

String? selectedVideoValue;

if (selectedVideoValue != null) {
  controller = VideoPlayerController.file(File('{$selectedVideoValue}'))
    ..addListener(() => setState(() {}))
    ..initialize().then((_) {
      controller.setVolume(0.0);
      controller.play();
      controller.setLooping(true);
      setState(() {});
    });
} else {
  controller =
      VideoPlayerController.asset("assets/movies/STYLEARCHIGRAPHIQUE.mp4")
        ..addListener(() => setState(() {}))
        ..initialize().then((_) {
          controller.setVolume(0.0);
          controller.play();
          controller.setLooping(true);
          setState(() {});
        });
}

谢谢你的帮忙

mzsu5hc0

mzsu5hc01#

设置到initState()中的以下代码可能有效

controller = VideoPlayerController.file(File('{$selectedVideoValue}'))
    ..addListener(() => setState(() {}))
    ..initialize().then((_) {
      controller.setVolume(0.0);
      controller.play();
      controller.setLooping(true);
      setState(() {});
    });
} else {
  controller =
      VideoPlayerController.asset("assets/movies/STYLEARCHIGRAPHIQUE.mp4")
        ..addListener(() => setState(() {}))
        ..initialize().then((_) {
          controller.setVolume(0.0);
          controller.play();
          controller.setLooping(true);
          setState(() {});
        });
}```

相关问题