如何解决如何播放Firebase视频的列表数组:在我的情况下,我尝试了很多更改,但出现此错误
这里有我的两个Dart文件,我从firestore中检索了我的视频,但是在这种情况下,我制作了视频数组并尝试对其进行检索,但是如果我使用字符串而不是数组来执行,它会给我一个错误。很好,但是在我的项目中,我需要数组,所以请帮我指点一下。
我的云存储库看起来像是:collection(Course)=> autoid => doucuments(video array)=>([[0] url [1] url2)
这是我的2个Dart文件,请更正我的代码,在这种情况下,当我运行此程序时出现了错误:
错误:列表不是'string'类型的子类型。
code:main.dart and chewie_list_item.dart
main.dart:It is for retrieve data
import 'chewie_list_item.dart';
import 'package:Flutter/foundation.dart';
import 'package:Flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';`enter code here`
import 'package:video_player/video_player.dart';
void main() {
FlutterError.onError = (FlutterErrorDetails details) {
FlutterError.dumpErrorToConsole(details);
if (kReleaseMode) exit(1);
};
runApp(MaterialApp(
home: CourseApp(),));
}
class CourseApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Flutter Demo"),),body: StreamBuilder(
stream: Firestore.instance.collection("courses").snapshots(),builder: (context,snapshot) {
return ListView.builder(
itemCount: snapshot.data.documents.length,itemBuilder: (context,index) {
DocumentSnapshot courses = snapshot.data.documents[index];
return (ChewieListItem(
videoPlayerController: VideoPlayerController.network(
courses['video'] ?? 'default'),));
},);
},));
}
}
[code 2: chewie_list_item.dart]: It for chewie video player.
import 'package:chewie/chewie.dart';
import 'package:Flutter/material.dart';
import 'package:video_player/video_player.dart';
class ChewieListItem extends StatefulWidget {
// This will contain the URL/asset path which we want to play
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();
// Wrapper on top of the videoPlayerController
_chewieController = ChewieController(
videoPlayerController: widget.videoPlayerController,aspectRatio: 16 / 9,// Prepare the video to be played and display the first frame
autoInitialize: true,looping: widget.looping,// Errors can occur for example when trying to play a video
// from a non-existent URL
errorBuilder: (context,errorMessage) {
return Center(
child: Text(
errorMessage,style: TextStyle(color: Colors.white),);
},);
}
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),child: Chewie(
controller: _chewieController,);
}
@override
void dispose() {
super.dispose();
// IMPORTANT to dispose of all the used resources
widget.videoPlayerController.dispose();
_chewieController.dispose();
}
}
所以主要我不知道要从我的Firebase检索此视频数组,请提供正确的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。